Make me C++ employable in one year !!

downhiller80

Platinum Member
Apr 13, 2000
2,353
0
0
OK, final year of my degree coming up. I'm doing physics and will get a first but I want to do programming. I simply find nothing more satisfying and challenging as programming. And I truly don't think I'm a geek (hell, I race downhill MTB, how geeky can I be?)

Right, compared to your average guy off the street I know everything there is to know about PCs, compared to a lot of you guys I know nothing :).

I've lightly programmed in bbc basic, qbasic, visual basic, pascal, vc++ 6 ever since I was 12, although much less the last couple of years (I'm 20).

I'm now learning C++ in most of my spare time. Worked my way through SAMS 21day crap in 2 days and am now looking at Deitel & Deitel how to program C++, having realised that I should maybe leave MFC a month or two until I understand what the hell's going on!

So how much can I learn by this time next year? Should I:
  • concentrate on VC++ at home
  • Take some evening class in it
  • Pay big bucks for a proper qualification of some sort
  • Spread my efforts over into other fields I know nothing about, such as ASP, internet programming, database programming etc?

    I don't want to be programming somethign boring when I get my job, I guess physical simulations (so as to use my degree) or games programming would be cool.

    Is there a book that'll tell me well how to program OGL and/or what software add-ons do I need to buy because while I'm learnign I may as well write somethign pretty and interesting.

    Currently I'm writing a fractal program that displays mandelbrot and lets the user zoom in/rotate/change colours etc etc

    Seb
 

Optimus

Diamond Member
Aug 23, 2000
3,618
0
0
Well, for games and such you are probably on the right track with C++, but from what I hear, game companies also look for industry knowledge...

The way I finally got good at programming wasn't through books and courses (although they were a necessary start) but becasue I sat down one day and began a 5 month project to create a program from scratch. I followed design procedures - came up with a set of specs that included everything I knew and even more that I didn't know and just started coding. It was an uphill battle all the way, but man did I ever learn. The key was to make it a huge, complicated program that I still felt I could approach. I put an interesting spin on it to keep my interest and stuck with it.

If you have a physics degree and C++ (and are good at the math) that is a great background for game engine programming. Don't expect to write Quake in 3 months - remember that even games like Doom took a team of some of the best people YEARS to create!

This is all just my opinion and speculation on life, but I found that I wasn't happy programming software I didn't care about. You could find out what types of software would interest you the most and try writing an app or two!
 

HigherGround

Golden Member
Jan 9, 2000
1,827
0
0
well, he said that he wants a fun job, and not to many people consider writing batch scripts "fun" and "rewarding"...going back to the original question...here's the route I took....

1995 - Start a freshmen year, thinking doing either computer systems engineering (CSE) or electrical engineering (EE)
1996 - Start of the sophmore year, I concentrate on the CSE
1997 - Second semester of the junior year, I decide to do a math minor
1998 - I decide to pick Digital Signal Processing (DSP) as my major concentration
1998 - First semester of the senior year, Senior Project #1 (Full range spectrum parametric equalizer) #2 (Digital audio compression unit). It seems like DSP is what I want to do.
1999 - Second semester of the senior year, i take a class that involves a multiperson larger scale project. We decide to design a radio controlled blimp (that thing was the coolest flying object I had ever seen in my life). I'm the only person in the group that knows anything about computers, hence I write the software. Few weeks later I discover that software development is actually fun.
1999 - May - I graduate with CSE Major and math minor. I have no clue what I'm doing with my professional life. I know that whatever it will be, it definitly will involve ether signal processing and/or software development.
1999 - Summer - I'm in Europe for an undetermined period of time and meet a great friend who lights up a long forgoten flame - Computer Graphics. Few weeks later we score a gig involving web page design. We both do graphical design, I teach myself Java and Javascript on the side. The results are awesome, We decide to start a company, but that idea goes down in flames as we were quickly running out of funds. I decide to go back to US and try my luck there, he goes back to school. We vow that one day when we are financially secure, we'll follow-up on our ideas.
1999 - Fall - I get back to US. I'm low on funds so I need a job fast. Two weeks later I get a job as a application developer working on photomask repair tool software. Customers involve IBM, Intel and Siemens, not bad. It's exclusivly VC++, which I don't know. I pick up VC++ 6 Super Bible spend the first couple weeks (day and night) teaching myslef MFC and Win32 programming.
1999 - Late fall - I'm becomming really good at this stuff, but the job is fairly boring and involves a lot of old code debugging. Besides the company is losing money so the perspectives are not to good.
2000 - Winter - I start looking for a new job, because I'm getting bored out of my mind.
2000 - Early Spring - I get a job as application developer for a large National Labolatory. The job involves writing application, libraries and other tools used to analyze and control rather rear physical phenomena. The whole system is UNIX (Solaris based), so I have to requalify myself. First two weeks are tough, but I get through them.
2000 - summer - I fall in love with what I'm doing. Job involves the full spectrum of library, application development. My first projects are UI skewed and I do quite a bit to rewrite our base 2d and 3d plotting tools.

Now - The job is just too cool for a 23 year old :) Every day I can't wait to go to work and sometimes I go on weekends.

So what the hell does that mean...well, based on my experiences it's almost impossible to plan out the future (hell, exactly one year ago I was getting stone in some night club across the ocean, not even thinking about my furture). The key word is reajustemnt and that what makes the game fun. I honestly say that being a computer enginner, hence having strong math and physics background helps tremendously, so if You are smart and know your "abc", not only You'll enjoy yourself, but You'll be quite good t this game.
 

stomp

Senior member
Oct 9, 1999
769
0
0
Get an internship somewhere... cheap labor for the company, and you learn SO much.

I mean, in just a week I was dropped into Motif coding full force, and another time into Perl, etc... you pick up so much stuff working for a big company taking random challenges as they come.

If you want something interesting, go with the many defense contractors... crazy interesting stuff, after clearance ;)

As for what you should DO... for your own benefit, learn OGL using something like the OpenGL reference book and the countless examples on the net.

If you want to do internet programming... ASP is big now, I regret not learning ASP in favor of Perl... but Perl is great if you need to do something stupid and quick (like making a program that reformats documents for example).

Don't bother with straight Win32API... unfortunately better IMO, people are going mega OOP with MFC and ATL and COM (<-- BIG BIG BIG!!). Just get a feel for them, and you'll pick up everything no matter where you work.

Class will not help you in any way shape or form for practical purposes. Class is for theory... not experience... unless its a Software design class.

Just remember game programming is the hardest work for the smallest pay and the most disappointment, but is probably the most fun. Your next best bet for interesting project, is like i said above, defense things -- (unclassified, so i'll spill) right now I'm interfacing this mobile GPS unit that will be placed on a tank and use satellite image processing to do crazy advanced terrain analysis for the tank. The small parts aren't as fun as looking at the whole picture :D
 

downhiller80

Platinum Member
Apr 13, 2000
2,353
0
0
lol @ BiB, yeah you made that clear.

HigherGround - thanx for all that history. How useful is a computing/information engineering degree? Am I at a distinct disadvantage from having done Physics instead?

Time to look into doing that masters in computing seriously I think.

Seb
 

BiB

Banned
Jul 14, 2000
720
0
0
stomp

I'm working primarily in ASP right now and I can tell you that its very easy to start working with. Just pick up a book by www.wrox.com (asp for beginners) or something like that and you can crank through that book in no time, from there there sky is the limit with ASP. I suppose Java will score you a bigger pay check ultimately but its not hard finding work in asp.

bib
 

Microsoft is trying to shoot themselves in the foot by making C++ less important. It looks like they are pushing C# (their own bastard language) now. For games and stuff C++ is good, for anything else it looks like C# and the stupid Windows.NET stuff is where they are headed.

Fck if I care though.
 

HigherGround

Golden Member
Jan 9, 2000
1,827
0
0
Actually, physics and math skills are invaluable, a lot of plane programmers are computer science graduates with very little background in those subjects, so you'll always have the upper hand in that department. Case in point: we needed a tool that quickly searches a map of named rgb colors and returns the furthest match from the input, the key was doing it in HSV space, so the most efficient design involved algorithm utilizying rgb->hsv space conversion (hence cartesian to cylindrical space mapping). Once everything was converted to cylidrical coordinates the solution was trivial. When the problem was presented none, besides a few engineers (including myslef :)) was competent enough to write the tool in a resonable period of time, so I alone ended up having all the fun :p. Another example: we needed an application that compares currents collected from superconducting magnets. Unfortunatly the sampling rate was limited by the hardware and we ended up curve fitting the inputs to match them up. Obviously we needed to know something about cubic spline fits, and again only a few people did ... as far as the software development goes, it's a skill you acquire over time. I learned to love it, because I'm a person that enjoys the process of creation and discovery and this is exacty what my current job is giving me...an oportunity to explore. Finally, I didn't give up on my studies, I will go back for my masters in math in spring , and since I'm being employed by the US government I'll get it for free :) :)
 

downhiller80

Platinum Member
Apr 13, 2000
2,353
0
0
You make me so happy Higher Ground :) :)

I've just ordered myself an ASP book as well becuase everyone's telling me it's good stuff to know.

Seb
 

hans007

Lifer
Feb 1, 2000
20,212
18
81
i went through the dietel and dietel how to program c++ book at school. First off its not a very good book. Second you should get an o'rielly one. Qualification tests are BS. Taking the class is probably the best, since they give you projects. I'm learning java right now. Iguess if you want to make a lot of money you go the C++ + java + visual c++ + perl + asp / sql route. Throw in some python or something too. I'm just a college student but that is my plan. Maybe learn some ASM too (once you learn a basic ASM language especially for risc you can learn others, its real fun too from my experience, i like asm)
 

downhiller80

Platinum Member
Apr 13, 2000
2,353
0
0
Well everyone has their own personal preference for books. I've seen only good things about Deitel (until now) so I got that one. Seems OK to me but I'm only on chapter 2. Starts very basic which is nice, makes me feel I know something :)

Seb
 

hans007

Lifer
Feb 1, 2000
20,212
18
81
its basic like that because its designed for classrooms, but it doesnt go very in depth for the advanced data structures. I guess its a good book if you've never programmed before but if you have you really wont like it too much
 

HigherGround

Golden Member
Jan 9, 2000
1,827
0
0
well the name of the book is C++ How To Program not C++ Algorithms and Data Structures, so based on the title alone one can expect a full coverage of C++ language. The fact that it's not going into extraordinary depths into one specific topic is not suprising. I myself like that book and so do many pro programmers I personaly know.
 

markjrubin

Golden Member
Jan 17, 2000
1,419
0
0
Dude,

If you don't &quot;come out&quot; as a geek, you'll never fit in in a programming team.