Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Should I Learn Python?
7 points by vicks711 on Feb 12, 2013 | hide | past | favorite | 24 comments
Hi, I am reinventing myself to be a web and app programmer at the ripe old age of 36. I am done with CSS and HTML.

I now have to learn a scripting language. Which one should I choose between Ruby, Python, and PHP?

Thanks



When I was choosing between Python and Ruby a couple of years ago, I chose Python.

To me it seems to be more universal - Ruby is (IMO) mostly used for web development, and Python is also rather widely used in other areas - in sciences (via NumPy/SciPy), sysadmin work and for various scripting purposes (in gaming, for instance).

By now I also got some experience with Django, and was also picking up Javascript recently. Can't comment on the amount of work available in Python compared to Ruby, just don't know the Ruby market, but for Python/Django there's quite enough freelance work via elance/odesk. Not sure if you'd get to $2-3k per month right away, but that's sure doable once you get some experience.

On the other hand, you have the advantage of being able to look for clients locally, and I only worked remotely - living in Russia now. Seems local rates in Australia (and other first world countries) are higher than in online market.

Seconding the importance of Javascript. I picked it up months after I started with Python, but starting with it earlier would've been a good idea for sure.

Again, most freelance work involves at least some frontend part, and if you're familiar with HTML/CSS/JS, even without Python, there's always something to do. Also there are quite some offers for Google Apps work, scripting GMail/GDocs/GCal - that's Javascript again.

Disagree on PHP requirement - didn't touch it yet, don't want to, have enough work (and some more people to talk to when I have time).

Feel free to drop me an email - egor.ryabkov at gmail - if you'd like to chat. Best of luck!


Thanks Egor! This is where I stand now. 1. Working knowledge of CSS and HTML 2. Aptitude for programming.

This is what I am going to do

1. Learn JavaScript and then jQuery. I am aiming at becoming comfortable with JS and jQuery in 3 months. 2. After 2 months I will start creating and selling simple templates (like e-mail templates and HTML website templates) on Themeforest.com. In 3 months I will start developing templates based on Twitter BootStrap 3. I will continue to polish my front end web dev skills from month # 4 to month # 6. 4. If my templates start generating a revenue of $600+ from month # 6 onwards I will be a very happy man. 600 bucks will take care of my family's monthly expenses.

5. If this financial goal is met I will learn Python. At this stage I will also start spending more time programming 7-8 hours a day and will gradually come out of my freelance writing (pays a measly $3-$10 and hour) and Internet marketing gigs.

Thanks for sharing your contact.


Wait, when you spoke of $2-3k/month, did you mean active or passive income? Because I was speaking of active one - as in, you directly exchange your time for money.

Can't comment on your plan wrt template selling, but it seems you might start earning money faster if you get right to freelancing; though it's up to you, of course.

Speaking of timeline - in my opinion, it might be more optimal to target real-life tasks and not some deadlines: that is, instead of saying "I'll spend 3 months learning JS and then will start creating templates" you might just do the tutorial, maybe make a couple small projects to get comfortable a bit. Then pick some task - like a template, or just browse freelance sites, pick a job you like and use it as a target - start doing it and then see whether your skills are up to it or not. If not, learn more until you get there.

And speaking of money - from what I saw on elance, $10/hr is about minimum for Python/JS, that'll get you people who can barely speak English. Around $15 is not impossible for a person with a bit of experience, and from then on... well, that's a whole different story here, about marketing, client network, connections, self-promotion etc etc. Though, again, for the first couple of jobs there your main goal should be not getting high rates, but actually winning these jobs and creating some reputation.

So to sum it up - why exclude yourself from development freelancing for 6+ months? And relying on templates sales looks a bit risky to me, direct freelance will get you income faster. Though passive income sure is great, so in the end it's for you to decide.

Oh, and seconding jQuery. It's great.


Additionally, is Python 2 or 3 currently a better choice for new Python developers that want to potentially release a new project?

I've noticed that some of the highly recommended Python libraries are still not Python 3 compatible. This makes the choice a bit harder to judge from somebody who isn't experienced with the direction of the ecosystem.


For newcomers I always suggest learning Python 2 first mostly because it is easier to find libraries and/or resources for Python 2. Also, I found it very easy to learn Python 3's differences after knowing the previous version.


I was able to pick up Python pretty effortlessly (coming from a zero programming experience background) through Udacity's search engine course. If you're coming from little or no experience, you can easily pick up on Python. Like everything else, it just takes time to get used to.

If you happen to go the Python route, here are a few resources that helped me:

Udacity's Search Engine Course https://www.udacity.com/course/cs101

Google's AppEngine (for Python development) https://developers.google.com/appengine/

Django - Web Framework for Python https://www.djangoproject.com/


This could be biased as it's the route I took.

I'd get familiar with all three. I'd start with PHP. It's ease of deployment will delay the sysadmin stuff that you'll end up learning anyway. Then I'd go to Ruby. Trying PHP first will make you appreciate Ruby and Python more.

When I'm interviewing people, experience in a number of languages is something I look for. A good programmer is a good programmer. Seeing and understanding the ways that different languages have implemented similar concepts makes you form an opinion and see that there are better ways to skin that cat.


I appreciate what you are saying. I have seen great programmers who can learn and start serious programming in a new language within a month.


The choice between Ruby and Python is something of a matter of taste. For what it's worth, Ruby on Rails appears to be more popular than Python's Django (though a quick search didn't give me any current numbers). In present day web development there is really no getting away from PHP, so you should learn it whether you choose Python or Ruby; same goes for JavaScript.

To make it easier to answer your question you should provide more background on your past programming and general computer experience.


Your comment is spot on. I'm a Django fan, but there are more jobs asking for RoR experience and way more asking for PHP and even .NET experience. The PHP and .NET tend to be less "sexy" jobs, but nonetheless are salaried jobs with benefits so they might be very ideal depending on where a person is at in their life.

Replying to your comment in addition to upvoting felt necessary because it often seems like on Hacker News that less than 1% use anything other than the latest tech. That is not true.


Hi, (TL;DR;) Good logical skills, decent IQ, and zero prior (non trivial) programming experience.

Thanks for the advice. I am a electronics engineer (though never worked as one) and an MBA. I worked in financial services Industry for 10+ years.

I am good at Maths. I studied standard engg subjects like Logic and Boolean Algebra, C programming language, 8085 & 8086 microprocessor etc. But that was a very long time back. What I retain from my engineering school days is the ability to think logically and wrap my thoughts around a problem.

Thanks


Do you know JavaScript yet? That's essential for front-end development, and if you get pretty good at it you can use it serverside with Node.js


I have not learnt JavaScript yet. I can spending only 3-4 hours every day learning how to program. Will it be a better idea to learn JavaScript before picking up server side scripting.

Since I can do server side with Node.js do you think it is a good idea to learn only JS for the time being?

Since I have to support my family I cannot spend more than 5 hours a day.

Thanks


Javascript is essential for any web developer no matter what server side technology they use. I would highly recommend learning Javascript first.


Thanks for the input. I have started learning JS. I am going through JS guide on developer.mozilla.org.


reinventing yourself and wanting to be a fulltime employee? Or reinventing yourself with the aim of freelancing, or even running a consultancy.

I would say that there is (at 5 hours a day with a family) a fairly long learning curve to get to the point where you have learnt enough python/javascript then built something with it to prove your chops and then got a FT job.

You might be able to learn enough in 3-6 months to have someone take a chance on a 36 yearold junior programmer. But we are an ageist sexist industry.

So, if you are done with CSS / HTML but do not feel a burning need to program (you would have felt it by now), then yes I suggest you learn to program, always good, but instead try finding a decent programmer whom you enjoy working with (I would guess you have met some) - and then set up a side project of freelancing yourself and him/her to local businesses or SF startups.

Maybe start with local businesses, build up the working rapport. (Try charging retainers!)

If you just want a change, maybe running a side business that might one day become a FT operation is it.


Thanks for the advice. I do plan to work as a freelancer and with local businesses. I also want to create some cool website templates and sell them on themeforest.net etc.

Do you think making 2000-3000 bucks a month feasible by selling themes? I saved wisely during my financial services days and if I can reach $2000 per month figure then I will focus 100% on programming.

Once again thanks for the advice.


2K on themes - I have no idea but I suspect not - its a competitive marketplace.

I think you can make 2000 USD a month by creating tools for your local businesses.

Here is my suggestion: go buy a list of businesses in your area for about 200 USD. You will get something like 5000 businesses for that in suburban area.

Split them into industry, and find their websites (most likely provided as the email addresses). Visit each site in an industry and work out which ones are just brochures and whoch ones actually take money online (customer signin, has visa paypal on page)

Now you have two groups. The brochure-ware group you can approach with examples from the other group saying "your competitors are doing this online - want me to help?"

The second group you can approach with "Do you know how many customers visited your site - and I can improve this"

(bonus points for actually dividing this group into those who have google analytics and those who dont)

No one pays for cool themes anymore (well 20 bucks is not really paying). People will pay through the nose if you up their sales.

Try looking at www.kalzumeus.com for an intro.


Sounds like a good idea. I will do this for 3 months and measure my performance.

I agree with your point that it is easier to charge money when the problem being solved is business critical.


post your results here in three months :-)


Will do that! If it works I will buy you a beer!


P.S. Yes I feel a burning desire to program.


I can't speak directly to Ruby or Python, because I haven't used them.

But, you can't go wrong with PHP for web programming. Look at the number of people using it.


Hi,

Thanks for your inputs. I really appreciate you guys taking out time. This is what I am planning to do.

1. Learn JavaScript and then jQuery. I am aiming at becoming comfortable with JS and jQuery in 3 months.

2. After 2 months I will start creating and selling simple templates (like e-mail templates and HTML website templates) on Themeforest.com. In 3 months I will start developing templates based on Twitter BootStrap

3. I will continue to polish my front end web dev skills from month # 4 to month # 6.

4. If my templates start generating a revenue of $600+ from month # 6 onwards I will be a very happy man. 600 bucks will take care of my family's monthly expenses.

5. If this financial goal is met I will learn Python. At this stage I will also start spending more time programming 7-8 hours a day and will gradually come out of my freelance writing (pays a measly $3-$10 and hour) and Internet marketing gigs.




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

Search: