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

Wow, Mohamed, this is great. I'm glad I stayed up late enough tonight to see your post. Please feel free to give me a shout via the email address in my profile - I'd be more than happy to kick around any ideas to help you get started.

What kind of computer do you use - Windows, Mac, Linux? I'd like to give you some suggestions for programming tools (mostly free, some you might pay for), but of course the details will depend on which OS you're using.

I second nailer's suggestion that you may want to start with Python for some of your initial learning. It's an easy language to get started with, but also very powerful. Even if you end up using another language later on, your Python skills will remain valuable - it's great for writing anything from little scripts up to large apps.

Ruby is also really nice, you wouldn't go wrong with that either. And of course you'll want to learn JavaScript eventually too, regardless of what else you do. You could start with any of these really, but Python is probably the easiest to begin with. What you really want to start out doing is to get the basic concepts of programming down - and these carry over from language to language.

One suggestion I'll make right away: in every language you work with, find and learn how to use a good debugger. For JavaScript, every browser has a nice built-in debugger. (I like the one in Chrome, but they are all pretty good.) For Python or Ruby it will depend to some degree on which OS you use.

And a good IDE with built-in syntax checking, autocomplete, and all that is really great to have.

Some people will tell you not to use IDEs and debuggers and things like that, as if it were a sign of weakness to use good tools. Or that if you follow Test Driven Development you should never need to use a debugger. Don't listen to them!

I see so many people asking questions on Stack Overflow that they could have answered for themselves in a few minutes if they only knew how to debug their code. Testing is important and you should learn all about it and do it, but debuggers are for more than just fixing bugs. They help you explore and learn how your code works, and what the APIs you're calling really do, in an interactive and visual way.

Here's a Stack Overflow post of mine from a couple of years ago with screenshots of a few Python debuggers:

http://stackoverflow.com/a/16474706/1202830

Don't worry if there's a lot of stuff in those screens; it will all make sense as you get into it.

You'll also want to get into version control sooner rather than later. Most people use Git these days, although Mercurial is very good too. I recommend avoiding the Git command line though, at least at first. You have enough to learn as it is without having to deal with that arcane system. But there are some nice visual interfaces to Git. I like SmartGit a lot and recommend it. It's free for noncommercial use. Or you may want to start with something even simpler like one of the free clients from GitHub.

Again, let me know what OS you're on and I'll make some specific suggestions for various kinds of tools.

p.s. Top of Hacker News on your first post! Not too shabby...



I am glad to have witnessed someone like you who's so generous of their time, and knowledge. Sir, thank you.

OS - Windows. Saving for a Macbook (too expensive). I am already on Udacity's Intro to Computer Science and Python is used to teach this course. Plus going through Learn Python the Hardway by Zed Shaw. Taking a Ruby course on Udemy.

IDE - I use Sublime Text for front-end development lessons (team treehouse, udemy), and Cloud9 for the Ruby course I am taking through Udemy.

So much to learn! What is your email?




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

Search: