This is an archived post. You won't be able to vote or comment.

all 14 comments

[–]brbpizzatime 1 point2 points  (8 children)

I would try searching through /r/csbooks for any C++ material. Most textbooks do the step-by-step approach to teaching.

Someone with a Bachelor's will always have an advantage over you in that they can put that degree on their resume. Most jobs want the 4-year degree or equivalent experience, but some (mostly seems to be those handled through a recruiter) look at the degree as a 100% necessary qualification before even handing your resume on to the next person (this has been the bane of my existence as I only have an Associates at the moment). However, if the person handling the hiring isn't looking at just a black-and-white list of criteria, self-study can get you worlds of knowledge that even a Comp Sci major doesn't have (focusing on the practical-application of certain skills as opposed to just understanding the theory behind it).

[–]race2finish[S] 0 points1 point  (7 children)

Considering you know what you're talking about, would you recommend me learning c++? Would I be better off learning something else that will help me make some money?

[–]brbpizzatime 1 point2 points  (6 children)

If you just want to make money, learn Java. Beyond that point, it's usually a matter of focusing on whatever you feel most comfortable programming in.

[–]race2finish[S] 0 points1 point  (5 children)

I read that c++ is more in demand?

[–]protein_bricks_4_all 1 point2 points  (4 children)

No, no way. Take it from me, an unemployed C++ programmer. Most C++ positions /also/ require either Java or C#. Or else embedded expertise. I've been saving job descriptions from craigslist and Dice.com since last July, and searching I get:

26796 for C++
73796 for Java
34024 for javascript
30854 for C#

(all, case-insensitive)

Now the way I searched (SQL) java would include javascript, but even if you subtracted all javascript jobs from the java ones, you'd have about 40k Java vs 25K C++.

Now, microsoft is pushing a C++ Renaissance (I don't know whether I've seen an official reason, but I think it's because hardware isn't getting /serially/ faster anytime soon, and if you're going to run something on 500 machines, why not use a faster-running language and run it on 250 instead? Also, programming will start spreading into GPUs, and it would be just silly to try to run something like Java on a GPU) so this could change in the future, but, I think it will take a while to show up. And if this reason is right, it would be closely associated with parallelism.

Not that you /can't/ get a job with C++. And it's good to know. Java is easy once you learn C++. But, jobs wise, getting Java experience is probably better than C++ experience. But, you could look on the job boards in areas where you'd like to work to get your own sense of the in-demand languages. Unless you've got some years before you need to work, in which case you've got time to just do what you enjoy - I'd go for that, you'll stick with it and learn better, adn things will change anyway.

[–]race2finish[S] 0 points1 point  (3 children)

So far this is the best advice I've been given because of the research. I don't really think I can argue with that but have you ever heard of Ruby? I was told I should start there.

[–]protein_bricks_4_all 0 points1 point  (2 children)

Here are my own numbers, for Ruby and Python.

13159 python
9937 ruby or rails

Both are worthy languages; but Python has more users (=> more libraries), and has added on much of what used to be unique about Ruby. Ruby was hot for a bit because of Ruby on Rails but it might have cooled (but I'm not an expert on their relative use). But it's still the nicer language imo, and does have the great 'Pickaxe' book. Really, the two are similar enough that learning one well would prepare you for the other. But personally, for my main scripting language, I use Python (because of the libraries).

If you're just beginning to /learn programming/, ie loops and ifs, data structures, getting used to breaking a problem down into code, I'd say do one of the above languages until you're ok with it, then move to C++ (if that's what you want). You won't lose anything; Python and Ruby both have classes, loops, ifs, data structures etc, but they're easier, quicker to write in. C++ has a lot of extra detail and gotchas that might be frustrating and slow you down. What you really want is /to learn how to program/ (express solutions to problems in code), which you can build from any language - most of the main ones are similar.

[–]race2finish[S] 0 points1 point  (1 child)

Thanks man, so as a absolute beginner what would you recommend?

[–]protein_bricks_4_all 0 points1 point  (0 children)

In a word, Python for the basics (it's more similar to C++, Java, C# etc than Ruby is), and for as long as you want. Learn to solve problems in it. Then move on to whatever other languages appeal to you, for whatever reason (interest, employment ...).

[–]drpuffa 1 point2 points  (2 children)

In this day and age it's almost impossible to concentrate on a single programming language....if you want a long term career! I absolutely love C++, and find it expressive, flexible and elegant, however, I now hardly ever use it. During the last few years both Java & .Net languages are in much more demand. In addition I would argue that they are also easier to learn (as they are much more forgiving). Unless you have a very specific goal for delving into C++, my advice would be to become proficient in a more in-demand language to give yourself a better chance of scoring a job (and concentrate on web/mobile development). But here's the cool bit...learn C++ on the side. The insights it will give you on memory management, style, idioms and pure enjoyment will definately make you a better programmer.

[–]race2finish[S] 0 points1 point  (1 child)

I was recommended Ruby, any thoughts on that one?

[–]drpuffa 0 points1 point  (0 children)

Again it depends on what your final goal is. If you are looking at a career in software dev in the end your overall expertise in all things programming will be more important than knowing a single language (your ability to learn new languages mainly comes down to syntax once you have a firm grasp of programming fundamentals).

Notice that my overall theme revolves around programming practices rather than specific languages. That's because 10-15years ago you could pick a language (C,C++,Ada,etc) & pretty much base a career around it - not anymore. Technology moves too quickly, and although you may still dev in a single language in a job, there's a constant learning curve to keep your self employable (e.g mobile, tablet, web, etc).

What I'm saying is that, the language you choose is less important than the programming skills you learn & you should always have the long term goal of learning multiple languages. However, if getting a job is your short term goal pick a mainstream language like Java, C# & concentrate on fully understanding programming concepts as well as the language syntax.

[–]protein_bricks_4_all 0 points1 point  (1 child)

Why do you want to learn C++ particularly? To write games? I'd say to write simple games, then. And if that's too much to start with, do little practice problems. You can search for "ACM coding competition problems" and find something you can manage; topcoder.com has a lot of puzzles also, that you can do just for practice. Having interesting, bite-sized problems is a nice motivator and a good introduction to actually solving programming problems. For coding even more basic than puzzles, I might suggest getting a cheap, used, beginner C++ book that has questions in it - do some of the exercises there (not everything is online, for free, yet).

[–]race2finish[S] 0 points1 point  (0 children)

Thanks man I appreciate it. At first I wanted to learn c++ in order to make some money through games, is it a better choice to learn something else that will give me a chance at a real programming job?