Hacker News new | ask | show | jobs
by code_pockets 5226 days ago
I started tinkering with computers at age 8, so I can relate to you very well.

At your age, I would start by installing a Linux distro of your choice (if you haven't done that first). Ubuntu is pretty easy to setup if you are a complete beginner.

Why use Linux?

You should start tinkering with Linux, because it is the most common development environment used.

Using Linux will allow you to learn basic troubleshooting and debugging. Those two skills are necessary if you desire to build any kind of application.

Linux will also allow you to try out different languages with a simple command (such as sudo apt-get install clojure1.2 (which I did two hours before writing this post)).

Then you can pick a language to learn the basics. By basics I mean how to write variables, functions, etc. A nice language to learn this is python, because it has a very simple syntax (syntax is how a language is written (like the difference between written English and written French)).

After learning how to write the basics, you should decide on a simple project to work on. One project that I reccomend beginners is to do a simple Rock/Paper/Scissors game. Focus on making it work, then focus on making it play against itself. This exercise will allow you to see your code work, and will keep you busy for a couple of days.

After that, you should head out and build a web app. Anything is fine, but a good project to start with a simple blog. You can use Python, but PHP is simpler to run, and is super simple to setup on your computer, thanks to a program called XAMPP (look it up, and install it). With PHP you can do all sorts of things. From calculators, to message forums, to whatever you desire. You can also pick an existing app and try to copy it. One fun project would be to copy hacker news, and adapt it to whatever topic you'd like. Or even build your own basic facebook, or a simple search engine. Try and build existing stuff.

One great thing about web apps, is that you can also learn to code various languages that interact with each other. You can mix PHP (or any other server side language) with javascript ( client side language (client means that it runs on your web browser and not on the server)).

At this moment, you should be pretty good at the basics, and may be ready to explore other more complex stuff. Maybe pick up a LISP-type of language. Or maybe you could try an polish your javascript skills. Who knows?

Here are some other pointers:

You should not limit yourself to one platform, one language.

Learning how to program takes years, not because writing the code is hard, but because designing real applications that work is quite difficult. This is the engineering side of it (and where most people fail, and/or quit).

Don't be afraid to try new (to you) things. You broke Linux/Windows? Who cares! Re-install and try again.

I started to tinker with computers at age 8. Took me years before I could even write coherent code (though I still wonder if my code is coherent). Yet, I'm here, enjoying it.

One final note: Don't quit. Quitting will make the biggest diference in your life. Keep going, even if slowly. You will get it.

Good luck!

My best,

code pockets

1 comments

Thank you so much for giving me such a detailed reply; and as you said, you started tinkering with computers at an early age. I am already learning python using a free open couseware from MIT using iTunes U. I have also learned the basics of javascript(using codecademy) and am applying it to HTML. I have a frind whose dad told me to start with HTML making web apps. He told me that app developement was to comlex for a beginner like me. I came to hacker news to learn more about what I should start with and what I should use to make simple but usefu applications

THANKS AGAIN!!!

>I have a frind whose dad told me to start with HTML making >web apps. He told me that app developement was to comlex >for a beginner like me.

I understand why he would reccomend HTML, and I partially agree with that statement.

HTML is fun for a beginner, because it allows the person to see changes done in the code without much hassle. Want to change the background from purple to blue? Just change the css property:

body{background-color: #123456} /* not an actual color number */

and hit F5.

I'm teaching my niece how to build simple web pages with HTML, so I understand the value it provides to a beginner.

You see, one thing us older hackers forget, is that beginners tend to think in terms of higher levels. Higher levels means that thinking about how the web app will look, feel, and work, rather than thinking how the code will be structured inside of it. This, because beginners do not have understood the engineering side of programming yet.

Although I'm not quite comfortable with someone who tells a 12 year old that something is too complex for them. I don't agree with such thing.

Here is why?

You were born after the internet became mainstream. You view information as something that is readily available. Learning something is just a click away. There are hundreds of tutorials to learn anything from cooking to painiting, and you can easily find them by doing a web search.

On the other hand, I was born in 1979. The internet back then wasn't known in my country. Fact is that we got telephone service during the late 1980s, and cable TV during the late 90s. I first logged into the internet in 1998, but I had learned how to write simple programs from the user manual of my first computer, and from college level textbooks (that we had at home in a small library my mother kept). Learning for me took months.

Why am I telling you this?

Your dads friend is an old dinosaur like me. He does not understand how a modern young mind (like yours) has adapted to the mountains of information readily available.

Of course you can do iOS apps, but the question is: should you?

Should you limit yourslef to one platform (while learning)?

My answer would be no. Learn as much as you can from everything. Sure, building an app would be fun and get you some attention, but building libraries, and or useful programs for your house/yourself/school/chruch/etc. would benefit fit you much more in the long run.

Well, it seems that by answering your questions I feel that I'm trying to answer the questions I had back then. Sorry for that.

One last thing:

Don't let someones opinion of your abilities turn into your reality. You are you, and not even you know how deep those abilities are. Go ahead and explore them with no fear in sight.

Have a nice day!