26 ms·
Ask HN: Would you still recommend a new learner to start from an old language?
I have a friend that understands programming. He wrote a little in C over a decade ago. He now wants to get back in development. He asked me if he should start back from C/Java or jump in with the new languages Ruby/Go? And if that will make his job hunting tougher if he did go with the new languages.
What would you recommend?
- chjohasbrouck 11y agoI don't think it makes sense to start this endeavour by choosing a programming language. I think he should choose something he wants to develop, and then choose the programming language as a technology choice in the development of that project. If he wants to do web, Python/Ruby would be good choices. If he wants to do a native iPhone or OSX app, he should probably start by brushing up on his C then learn Objective-C. When you're programming, the biggest motivator for me isn't to learn a new programming language, it's to work on a new project, and being motivated is important. I always choose language as a tech choice of the project. YMMV
- informatimago 11y agoIf the only criteria is only to get "a" job, then only the ratio job applicants / job offers categorized by programming language should be taken into account. If you add other criteria, such as salary, happiness, difficulty, locality, etc, then the choice will become more difficult. That said, the programming language should just not be a consideration for a programmer or to get a programming job. Do you ask your surgeon whether he uses knifes or clams from such or such provider? Do you think that hospitals will reject a surgeon because he never worked with knifes of the same made as the ones they have and use at the hospital? A real programmer will be able to use any programming language. If you ask an experienced real programmer, he will tell you what programming language to use to write what application, and it may very well not be the same language for all your applications. (Actually, this is because languages have different features that are required or more adapted for different applications, that languages such as lisp or scheme that have a good macro system, ie. compiler hook, allowing the programmer to _change_ the language and implement domain specific language features (or use libraries implementing domain specific languages), that language as lisp are so good and should be used more, if you asked experimented programmers, instead of newbies or managers; this is also a reason why newer languages like ruby or python that try to be more like lisp have such current development, but people would do better with lisp). So as a future professional programmer, your friend would be well advised to become acquainted with several programming languages. For example, he could write a small smartphone applications with a backend server, where he would have to write android java, iOS Objective-C, some C or C++ library used by either, a Common Lisp server, using some PostgreSQL database (programmed in SQL), with a Ruby on Rails front end, and a few bash glue scripts. To be efficient in his work, he would also learn emacs lisp to customize and automatize his emacs workflow. In addition to the smartphone apps, he would write some administrative web server, including some Javascript stuff generating HTML and CSS. http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa6506e2f35eaac http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa650...