Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Learn a language you can immediately do something fun with. If you're excited about desktop 3D video games, pick up C++ and, say, the Unreal Engine.

If you're excited about web servers, pick up Ruby/Rails - or if you think you might want to create a client side application, pick up Javascript and some framework like Angular or React and build something that you can deploy as soon as possible.

If you're into Machine Learning, pick up Python and start going through ML tutorials and jupyter notebooks while attempting to solve some problem in ML that you find interesting.

Don't pick a language based upon some esoteric development principle that undergirds it. Pick a first language based upon its ability to keep you banging away at the keyboard all night, doing something you think is cool.



This is the correct answer to that and every other "what tool should I learn" question. I'll add my two cents be expanding this answer a bit.

As crusso basically stated, the answer is actually twofold because you have to:

#1 Choose a problem that is fun to solve. #2 Learn the language that is the best suited to solve that problem.

Regarding #1 up there, the reason you choose something fun to solve is because programming is hard. But, if you are having fun, the enjoyment of solving will keep you motivated through the tough times. You'll find solutions, push through and level up.

Its the same reason you should pick a career you enjoy.


> if you are having fun, the enjoyment of solving will keep you motivated through the tough times. You'll find solutions, push through and level up.

You hit the nail on the head.


I always make the woodworking analogy. You don't hear people say "I'm a huge router fan." "I'm a tack hammer kind of gal." "I was born a radial arm saw user and I'll die one!"

Maybe you want to make cabinets, or houses, or decks. Pick the tools that help you make what you want to make.


To take an example, Java can be used for a great many things. It's nowhere near as specialized as a tack hammer. So this isn't as easy a decision as you are making out.


Technically, you should learn the most general tools first. Java is not one, it is designed to be explicitly limited.

Both Python and C++ are general albeit Python had a major disadvantage in performance while C++ in clarity. (That said, more modern versions of both have the disadvantages reduced.)


How is Java "designed to be explicitly limited"? It's a general purpose programming language with a huge number of libraries available.


It's really not that hard. First decide what kind of stuff you want to do, find some people currently doing it, use whatever tools they're using.


> If you're excited about desktop 3D video games, pick up C++ and, say, the Unreal Engine.

Or get Unity and learn their built-in scripting language. No need to spend years learning C++, OpenGL, etc. if you're not planning on being the next Carmack.


Even better. Many people start learning C# with Unity and can move on to other things from there if they wish to.


I think Unity's scripting options are C# and Javascript.


> If you're excited about web servers, pick up Ruby/Rails

Yes. After much reflection, I decided that I'm at the "fuck it, I'll use Rails" point for new projects. It's easy, batteries-included, and (mostly) fun.


Is it outdated though? I've been focused on using node/express and it straight forward and all JavaScript. But I have heard you can learn good practice from rails. Should I spend time learning rub/rails?


For five years Node has been excellently positioned to defeat Ruby on Rails as the goto framework of choice, but due to the community's fragmentation I still don't believe there is a web framework in the node ecosystem that is even close to being as complete, as handy, and as rapid for development as Ruby on Rails still is.

But I'm willing to stand corrected, because Node holds the capability to revolutionize writing single page web apps (SPA) the way rails did for database-backed server-side apps ten years ago.

(I.e. is there a Node SPA equivalent that can automagically build with a one line scaffold command what Rails did for CRUD?)


To throw a curve ball ... I actually use Elixir/Phoenix for all my new web projects. It's new, a bit Ruby/Railsish, functional, high performance. Combine it with Elm on the front end and you have a lot of power as well as programming tool goodness.


Can I scaffold CRUD together in Phoenix like I can in rails? How much "rougher" do you find the ecosystem and general process of writing apps?


Python can be used to make games as well. As well as any other language.

https://github.com/libgdx/libgdx/wiki/Using-libgdx-with-Pyth...

Here's a screenshot of something I prototyped. http://pasteboard.co/y6bxRPA3e.png




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

Search: