Overclock.net › Forums › Software, Programming and Coding › Coding and Programming › New Computer Science Student Here! Where Can I Learn C++?
New Posts  All Forums:Forum Nav:

New Computer Science Student Here! Where Can I Learn C++? - Page 3

post #21 of 23
As a senior in CS, I'd like to add that the degree program is indeed mostly worthless for learning proper programming. The Software Engineering/Design courses get your feet wet with modularity, high cohesion low coupling, etc., but you don't ever actually learn how to program. Any earlier introductory courses oriented around a language teach you stuff that you could learn in a week or two once you wrap your head around language paradigms and designs, and that's usually left to upper division.

Our curriculum doesn't even include a C/C++ intro course (we have one, but it's left for non major students...), yet the operating systems class throws you in the deep end with C. I'm taking a Software Design/Development course that expects good code and modularity, except most of the people haven't even seen C++ before. I'm not even very good with it, so I threw good design out the window and just starting whipping away; my code is gross. But at least I can identify it, and wouldn't ever use it in production if I do anything serious with C. So many people just don't see it, and I fear for the state of software receiving these guys and girls.

I haven't even heard the C++ STL mentioned in class, which is embarrassing.
Edited by EfemaN - 10/15/13 at 7:18pm
post #22 of 23
I think what you should take away from a lot of the posts in this thread is that it's very situational and you should try to distinguish what you need to learn to get good grades and what you need to learn to be a good engineer.

I'm not going to get into the coding specifics because I'm a mechanical engineering prospect and not a software engineer, but my advice as a person 4-5 months away from finishing a Bachelor's Degree is at least worth its weight in gold.

Don't assume they will teach you everything you need to work in the field:
The rule of thumb here in California is that University of California will make you good at the conceptual material and educational knowledge and California State University will make you better at industrial knowledge and real world applications. However, either scenario still leaves you with a dilemma: you're either going to have to get real world experience or teach yourself the fundamentals. You never know if you will want an M.S. in the future so it's important to make up for what you are missing out on.

As an Engineer, you will be solving problems:
I don't think you should walk into this expecting to only use C++ for three years. I think you should respect and understand every language and specialize based on the job you want after you graduate. Do you want to write code for gaming engines? Do you want to work in bioinformatics doing biology simulations or data analysis? Do you want to work in financial analytics? Start up companies proprietary software for technology? Figure out what your end-game goal is and work toward it. But get good grades. I'll never take an engineer seriously who tells me with a straight face that having good work experience eliminates the need for good grades. This is simply not true. It's situationally true. If you have to CHOOSE between good grades and work experience, of course choose the work experience because what you know how to do matters more than being a stud in conceptual situational work. However, why choose when you can have both? At the end of the day, in the long run, your grades won't matter as much but they will help you get that first job. And most of what you do will be solving problems. That's what we do as engineers, we solve problems. We take a wide range of information, we figure out specifically what information we need to use and how to use it to solve the issue we're dealing with. The more situational and diverse you are, the better you will be at solving a diverse range of problems.

And don't jump ahead too much. Learn some basics, do some fun little projects like making a simple do or while loop. Write an ATM program. You don't need to get a head start because the whole point of your lower division classes is to slowly ease you into the material. If colleges admitted students based on the expectation that they already knew some of the material before even stepping foot on campus, a LOT of students would drop or get burnt out. And that already happens WITHOUT that expectation.
post #23 of 23
Quote:
Originally Posted by TrollingThunder View Post

And don't jump ahead too much. Learn some basics, do some fun little projects like making a simple do or while loop. Write an ATM program.
I was at the store the other day and the ATM was down for servicing. The screen was on and guess what OS it was running - Windows XP!!

I may be one of the older members of this group and a chemist by training. Back in the day when I took my first programming class we programed in Fortran on the University mainframe with punch cards which was a real pain since they only ran our jobs at the top of each hour. I've had to write some small data management and analysis programs throughout my early working days but quite frankly most of what I did can now be easily done in Excel. I taught myself C before there was C++ and wrote some pretty nifty fantasy football projection programs. I echo the comment about doing little projects because you will quickly identify algorithms that you need to implement something. In my case it was how to read in data, properly construct a linked list of players and their respective statistics, do weighted calculations, and then sort results by several different categories. You also want to be able to display data to screen and print things out. So even something short and fun like fantasy football can provide a number of different problems to solve and implement.
Photo Editing PC
(11 items)
 
HTPC
(11 items)
 
 
CPUMotherboardGraphicsRAM
Intel i7-4790k  ASUS Sabertooth Z97 Mark 2 ASUS GTX 960 2GB STRIX 16GB Crucial Ballistix Tactical DDR3 1600 
Hard DriveOptical DriveCoolingOS
256 GB Samsung 850 PRO WD 2TB Caviar Black Noctua NH U12S Win8.1 
MonitorPowerCase
NEC MultiSynch P221W SeaSonic G 650 Fractal Design Define R5 
CPUMotherboardRAMHard Drive
Intel i3-3225 Gigabyte H77N-WiFi 4GB Crucial Ballistix Tactical DDR3 1600 120 GB Samsung EVO 840 
Hard DriveOptical DriveCoolingOS
500GB WD Blue LG Blue Ray DVD Reader Noctua NH-L9i Win7 
KeyboardPowerCase
Logitech K-400 Seasonic G360 Lian Li PC Q-27B 
  hide details  
Reply
Photo Editing PC
(11 items)
 
HTPC
(11 items)
 
 
CPUMotherboardGraphicsRAM
Intel i7-4790k  ASUS Sabertooth Z97 Mark 2 ASUS GTX 960 2GB STRIX 16GB Crucial Ballistix Tactical DDR3 1600 
Hard DriveOptical DriveCoolingOS
256 GB Samsung 850 PRO WD 2TB Caviar Black Noctua NH U12S Win8.1 
MonitorPowerCase
NEC MultiSynch P221W SeaSonic G 650 Fractal Design Define R5 
CPUMotherboardRAMHard Drive
Intel i3-3225 Gigabyte H77N-WiFi 4GB Crucial Ballistix Tactical DDR3 1600 120 GB Samsung EVO 840 
Hard DriveOptical DriveCoolingOS
500GB WD Blue LG Blue Ray DVD Reader Noctua NH-L9i Win7 
KeyboardPowerCase
Logitech K-400 Seasonic G360 Lian Li PC Q-27B 
  hide details  
Reply
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Coding and Programming
Overclock.net › Forums › Software, Programming and Coding › Coding and Programming › New Computer Science Student Here! Where Can I Learn C++?