Ask HN: From nothing to freelancer
My wife is looking for a (major) career change. My advise to her is to pick up programming. I gave her a first introduction in the fundamentals of programming and let her read some basic books. She grasps this quite well and is also very interested in it and eager to learn. Now is the time to dive deeper into a language (besides the HTML and CSS which we will start with) and stick to that one. The big Question is, which one?
Keeping following in mind:
- She has 4/5 months free where she can learn 5 to 6 hours a day intensively
- After this period, she would like to work as a freelancer (based in Europe)
- She would like to freelance (or be a contractor) for more established/bigger companies, no interest in working for smaller startups
- Should be web programming
My thoughts are either Ruby or Javascript with the rise of Node.JS and frameworks like Meteor and Express. The issue with Ruby is that it's mostly used for startups, which if they grow usually switch to another stack. Python might be another solution but afaik not very demanded in Europe.
HN, I would love to hear your thoughts and recommendations! Definitely Javascript. Start her off here: http://jsforcats.com/ From my view as a freelancer in the Netherlands, JavaScript demand is exploding - it's mostly front-end jobs that I see, but I also use it on the server too - while Ruby has lost quite a lot of mindshare. A CTO at a big multinational I work at and talk to often said he thinks Rails has "lost momentum". Python is always somewhat in demand here, but it's a little more niche compared to JavaScript. I would definitely aim for front-end first though. Something like: Start with the basics of the language; then DOM manipulation and basic animations with jQuery; then have a play with Backbone or Angular. Front-end is less hassle getting straight to learning due to the developer console. Server-side means setting up node, learning to use npm, and (god forbid) trying to setup mongodb or another DBMS. Not for newcomers. Good luck! I think it's a sound career choice. Of course, 4/5 months will just scratch the surface and get her started... :) Have her learn a language that is not the flavor of the month. Java, C#, C++, etc. Those languages are always in demand and are mostly used by stable companies. She may then learn Ruby, Python, or JS. Those are rather simple after learning how to program with the others. Do you think 4-5 months learning Java, C# or C++ are enough to start taking on projects? I doubt honestly. Contrary to learning one specific language and getting decent enough (to take on projects) at one of its frameworks like Rails, Node or Django would be a lot faster and feasible within 5 months. >Do you think 4-5 months learning Java, C# or C++ are enough to start taking on projects? No. Neither is it enough time to do projects in Rails, Node or Django. Those frameworks are very complicated and demand that the programmer understand basic design patterns, OOP, and security. Your logic of learning a framework over a language is questionable. I fail how a beginner to Javascript will be able to effectively write Node applications. Given the nature of the language itself. Same with Ruby and Rails, as with Python and Django. Plus you missed a very important point. She wants to contract with big, established companies. A good understanding of C# or Java will get her good work opportunities in more places than any of the ones you mentioned. This is good advice. Since the OP asked about web programming, the equivalents would be HTML, CSS, JS, and (gasp!) PHP. Definitely not the flavor of the month[0], but you'll never run out of people who need some e.g. Wordpress tweaking. I would recommend getting a Teamtreehouse or a tutsplus account to start learning along with a real world mentor. Once she gains a level of understanding , she should focus on establishing a portfolio which can only happen by doing whether for friends or through probono by signing up at sites like catchingfire. once that is done then the next steps would be to sign up at odesk etc ..I guess thats pretty straight forward. Thanks for the answer. The 'how' to learn a language or portfolio is not really the issue here, rather what language to pick. Which language is best to learn today to be able to get freelance work today and in the future. Which language is in demand and will be even more in the future and will be adopted by larger companies. And last but not least, which language can be learnt within this timeframe to have enough understanding to build and ship things (almost alone) requested by clients. It's bad idea to "stick to that one", no benefit, it will only decrease chances of getting some gig/contract. Since you are aiming for established bigger companies, expect to work on some outdated technologies. Ruby/nodejs is not outdated yet, it might as well cease to exist in few years, because very few businesses will manage to establish on such technologies. Not too sure. Considering the limited timeframe and wanting to get ready for employment, I think it's the correct decision to stick to one and get good enough in it rather than learning more technologies and not being able to work with any proficiently. Compare it to the bootcamps which usually also only stick to one language. (I will teach her HTML CSS and jQuery, but this is not included in the 4-5 months of learning a programming language.) Perhaps the best course of action would be to go through local job listings and see what interests you / seems possible in 5-6 months given her acumen. Different people have a knack for different things.