5 ms·
Ask HN: I'm an amateur/hobbyist programmer. What language should I learn next?
I'm a self-taught coder and am looking to challenge myself by learning a new programming language. As a kid, I taught myself to code in Logo and BASIC. As an adult, I use Python and JavaScript for personal projects and scripting repetitive tasks.
What should I learn next? I know I could deepen my Python and JavaScript knowledge, but I want to use a new and unfamiliar language to fuel my learning and curiosity.
What would you recommend in 2017?
- brad0 10y agoHow much JS do you know? Do you know ES6? Same with python. If you feel you _really_ understand those languages you could learn a statically typed language. Something like Java might be a good next step. Another idea is to learn a Javascript framework. React might be a good choice if you're into web front end.
- cardamomo 10y agoI'm far more knowledgeable and comfortable with Python than JS. Your question about ES6 is well taken. Diving deeper into that might meet my goals.
- brad0 10y agoIf you're looking for a great start point you can try this: https://github.com/verekia/js-stack-from-scratch https://github.com/verekia/js-stack-from-scratch This guide is great. I feel a lot more comfortable working with JS after using it.
- tobltobs 10y agoLooking at your blog I guess your next step shouldn't be learning another language, but to learn how to ship.
- cardamomo 10y agoTell me more...
- tobltobs 10y agoNon native speaker here. I just tried to decipher "Tell me more". Does this mean "I am seriously interested to hear more" or is it more a sarcastic "I already know that."?
- cardamomo 10y agoNot sarcastic. I want to hear more, because I'm not entirely sure what you're referring to, and I'd rather not guess. EDIT: My personal blog is not really the point of my question, though, so I'd really rather you contact me separately about that.
- tobltobs 10y agoOn your blog there is somewhere the line "My ~/project folder is full of half finished web apps ...". The knowledge of some computer languages alone isn't useful if you don't apply this knowledge somewhere. For example building stuff. But building something requires more then just knowledge of languages. So without those other knowledge your computer language experience is rather worthless for you. Also you can't really evaluate the dis-/advantages of a language when you never ship something. If you just want to automate some private stuff the above isn't true of course, but then Python and JS is sufficient anyway.
- wchrisn 10y agoPick up one machine learning like tensorflow, h20, spark. Consider integrating with Mobile App ( ios ). You can leverage python for backend API for the mobile app
- bostand 10y agoLearn C. Knowing C opens many doors to you, both professionally and intellectually.
- brudgers 10y agoIf I had to pick one: Racket because it is an ecosystem that has a lot of focus on people learning, it has good tooling, it's batteries included, and more...by which I mean out of the box there's logic programming languages and statically typed languages and declarative languages and Algol 60. In addition, the community tends to row in the same direction and one of those directions is good documentation most of which is all in one place http://docs.racket-lang.org http://docs.racket-lang.org But I'm not really inclined to pick just one: For something more old school, Common Lisp but to me, it is a bit less accessible by which I mean that the community is much more focused on professional programming. But it is where a lot of other languages have drawn ideas. Also Forth, J, Processing, C, SML, Lua, Smalltalk, Ruby, R and Clojure because they are cool. Good luck.
- clark-kent 10y agoTry a different paradigm like functional programming (read the SCIP book), or learn Haskell, Elixir. If you love Javascript, try getting into Node and one of the Javascript frameworks. Try doing a sizable side project in your favorite language.