Blogger Carl Cheo, who maintains a website providing numbered lists of tips for maximizing online productivity, has pulled together an easy-to-follow graphic answering the newbie question "What programming language should I learn first?" (pdf here). Cheo chose nine commercially viable languages as possible destinations as the viewer navigates the flow chart. Further down the page, there are tabs with annotated links to educational resources for each language. So what's in it for Soylentils, most of whom I'm guessing were programming newbies in the previous millenium? Well, maybe you have nephews or nieces who chose the wrong major in college. Besides, the graphic is amusing and clever, though probably not the last word on the subject.
(Score: 2) by hash14 on Saturday January 24 2015, @02:50AM
Yeah, C++ is a mess and a first language to learn because it tries to be multiple things - compatible with C and native-binary object-oriented at the same time.
If you're going to be a lifelong programmer, you have to understand both how the computer works, and how to use those tools to do what you want to achieve. And everybody learns these things a different way, so there's no single shot that will work for everyone.
But given these requirements, I would probably prefer learning both C and Python together as first languages. C because it helped me understand what the computer is really doing when I program it; and Python because it helps me grasp what I can really do when I know what I'm doing.
In fact, the first time I ever used Python (zero previous knowledge) was when I had to solve a numerical programming problem and I finished it in about half a day. But still, if all I knew today were Python, I would still have no understanding of what the computer was doing and as a result, I would have no trust that anything I had created was ever actually working as I intended. And let's not forget that this also teaches concepts like interpreted vs. compiled, static vs. dynamic, etc.
So ultimately, I would say that it's good to know a mix, and then meet in the middle when you find the right balance of productivity and usefulness for what you're trying to do. No one can call his or her self a software engineer/computer scientist knowing only one language. Ultimately, a programming language is a tool and any good engineer has to know how to pick the right one.
And sorry for omitting functional languages... but in all honesty, those are actually my favorites...