5 ms·
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
by crusso 10y ago
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.
- Waterluvian 10y agoI 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.
- pekk 10y agoTo 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.
- AstralStorm 10y agoTechnically, 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.)
- grzm 10y agoHow is Java "designed to be explicitly limited"? It's a general purpose programming language with a huge number of libraries available.
- crusso 10y agoIt'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.
- thomk 10y agoThis 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.
- happy-go-lucky 10y ago> 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.
- JayHost 10y agoPython can be used to make games as well. As well as any other language. https://github.com/libgdx/libgdx/wiki/Using-libgdx-with-Python https://github.com/libgdx/libgdx/wiki/Using-libgdx-with-Pyth... Here's a screenshot of something I prototyped. http://pasteboard.co/y6bxRPA3e.png http://pasteboard.co/y6bxRPA3e.png
- SrslyJosh 10y ago> 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.
- isaacremuant 10y agoEven better. Many people start learning C# with Unity and can move on to other things from there if they wish to.
- nerflad 10y agoI think Unity's scripting options are C# and Javascript.
- SrslyJosh 10y ago> 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.
- newbear 10y agoIs 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?
- ExactoKnight 10y agoFor 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?)
- crusso 10y agoTo 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.
- ExactoKnight 10y agoCan 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?