Hacker News new | past | comments | ask | show | jobs | submit login

It really depends on what you're trying to accomplish. I have talked to many people from business / marketing / other backgrounds that want to learn how to code. I generally advise them to try and learn some aspects of design -- either "user interface", "user experience", or general product design -- because their goal is to build a particular product, or to start a software business. IMO there are many skills involved in building technology products that require little to no programming skill, but understanding how people use computers on a deep level is far more valuable than spending your time mastering a programming language or web framework.

If your goal is to become a programmer, I will advise you that regardless of the language or path you choose, you are in for at least a 1-2 year learning process in which you will learn a language, an accompanying toolset, and the basic set of skills required to debug and architect large, complex programs. You will also be learning a lot of terminology, which is indispensable for what I believe to be the main skill involved in programming, which is knowing how to Google things.

To answer your question directly: From my vantage point, the puck appears to be skating in two directions. Golang is a rapidly growing language developed by Google, and is considered to be one of the best amalgamations of features from modern programming languages. I highly recommend it. It has only been out for four years, so I can't speak to how approachable it is to a newcomer, but if your goal is to learn a language that will not become obsolete in 5-10 years, I think Golang is a good bet to make.

In the other corner, there seems to be a growing community about a language called Clojure. It is a little complicated to explain Clojure's appeal to non-programmers, so be warned that exploring Clojure is slightly "off the beaten path" compared to many "mainsream" programming languages like Java, Python, or Ruby.

In short, there is a language called Lisp which is highly regarded in the elite programming community as the best way to write software. In his seminal essay "Beating the Averages" [1], Paul Graham offers several compelling arguments as to why Lisp-based langauges (and programmers) are superior to other forms of programming. Since I am not a Lisp developer, I recommend reading his article, since I would probably butcher any attempt to explain its merits against other popular languages. Anyway, Clojure is a modern implementation of Lisp, has an incredible community, and appears to be gaining a lot of traction. Given your background, starting with Clojure might make a lot of sense. Rich Hickey (the creator of Clojure) is an incredibly influential figure in programming circles.

Finally, unless your goal is to write mobile applications, a rudimentary knowledge of HTML, CSS, and Javascript is required to be able to produce anything in our web-based world.

If you have any more questions, feel free to email me (my email is in my profile). I enjoy helping people navigate the confusing jungle of modern programming education, and I can point you in the right direction depending on what your goals and work ethic are.

[1] http://www.paulgraham.com/avg.html




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: