Ask HN: I want to start programming - Should I start BASIC?
The problem I face is remembering what I read in tutorials/books and/or putting what I've learned into practice!
The problem I face is remembering what I read in tutorials/books and/or putting what I've learned into practice!
[+] [-] jechen|14 years ago|reply
If you want some solid beginner reference materials, I'd suggest Learning Python the Hard Way (http://learnpythonthehardway.org/). I'm a strong proponent of teaching introductory programming with Python. Others are just a Google query away.
It'll be a long and arduous (and ultimately rewarding) journey. Best of luck!
[+] [-] pvarangot|14 years ago|reply
If you want to do something a little different you can also try subsetting Haskell as per in most of the courses found in http://www.haskell.org/haskellwiki/Haskell_in_education#Hask... That is the approach they take in the University I studied CS, and it's an interesting one to combine with learning Python as a fist language.
[+] [-] BlackJack|14 years ago|reply
This book is a classic and outlines various fundamentals of computer science and programming. Scheme is the type of language that lets you just code without worrying about all the unnecessary things that hinder the beginner.
From there you should move to C++ so you can get used to object oriented programming and have a better idea of what "modern" languages are like, but I contest that SICP is the best book to use to start programming.
[+] [-] serichsen|14 years ago|reply
I would recommend to learn Common Lisp instead.
[+] [-] evo_9|14 years ago|reply
From Javascript you can use your knowledge and move to just about any other langauge (C/C++, Java, C#, Actionscript are examples of other 'C' derived languages). Plus, Javascript's popularity is on the rise and it's a good skill for any programmer to have in his toolbelt (you are bound to run into it at some point in your programming experience down the road).
As far as putting programming skills to practice, I agree with the sentiment of others - come up with a pet project, even a simply one to learn the ropes. For example I use to always start by writing a simple contact/address book program; it contain all the elements you'd need to know for most business apps (a list of records (addresses), the ability to view 'details', add new records, delete records and edit existing data).
You should also consider taking a computer programming class at your local community college. That way you are assigned simply programs, have other classmates to work with and talk about sticking points with; of course the teacher is always an option to get some real feedback when you are stuck which is something a book alone can't provide.
[+] [-] noblethrasher|14 years ago|reply
Also avoid (for now) any project that requires a relational database and instead opt for saving things to files. You'll end up learning a bunch of bad habits if you try to learn a general purpose language and an RDBMS at the same time; you might start to think that an RDBMS is the only option for storing and retrieving data even when simple reads and writes to the file system will suffice (the hacker news website does not use a relational database for instance).
Some suggestions for projects:
* Some kind of light accounting program.
* Something that reads RSS feeds, looks for keywords and notifies you of relevant links.
* Something that manages your media library.
* A TODO list (this is popular among even experienced programmers, you can easily add a GUI part later as well as graduate to using an RDBMS).
As someone else mentioned, use Stackoverflow.com. I especially enjoy helping new programmers there, my contact info is in my profile.
[+] [-] sixtofour|14 years ago|reply
I'm teaching programming to my 13 year old son, using Python. He's doing well with it.
[+] [-] leibniz|14 years ago|reply
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
[+] [-] pvarangot|14 years ago|reply
If you want to do something a little different you can also try subsetting Haskell as per in most of the courses found in http://www.haskell.org/haskellwiki/Haskell_in_education#Hask... That is the approach they take in the University I studied CS, and it's an interesting one to combine with learning Python as a fist language.
Also, be wary of EWD quotes about teaching computer science, since they are sometimes a bit cocky.
[+] [-] GoldenMonkey|14 years ago|reply
[+] [-] mdoyle|14 years ago|reply
I also don't recommend copying other people's code until you are familiar with the language in question and can debug and enhance the code.
Choose a language - nothing wrong with Basic for learning purposes - get a book that takes you from Hello World to building a small app and read it cover to cover. And be patient. Don't copy other people's code for now. I think you'll get more reward this way and will be able to build upon your learnings instead of spending your time trying to make your current mashups work.
[+] [-] namank|14 years ago|reply
It was because I didn't do examples thoroughly. Soon I realized that doing examples was actually more important than reading the book.
By the sounds of it, you are in the same boat!
Start by figuring out how to compile/run a hello world program. Then figure out what all the code means. Do that a couple of times with a couple of different (and small!) examples before you can expect yourself to come with the code.
Practice, practice, practice!
[+] [-] waynecolvin|14 years ago|reply
Nevertheless, for as long as you do grow out of it and move on... Why not! Don't forget to move on, that's important.
It's possible to find really old books with like scientific/financial calculations in BASIC, but don't get under the illusion that you can easily do anything "practical". For play/practice, go ahead! But please do move on it you keep at it.
[+] [-] tobylane|14 years ago|reply
If you've failed so often, don't keep trying, but read some motivational/self-improvement books. Ask HN for them, I haven't read any.
[+] [-] chipsy|14 years ago|reply
[+] [-] damoncali|14 years ago|reply
Pick one and jump in. Branch out from there.
[+] [-] DanielStraight|14 years ago|reply
[+] [-] Spock|14 years ago|reply
[+] [-] mbrzuzy|14 years ago|reply