The cliche goes, "If I knew then what I know now, then things would be different." Well I didn't, so the closest thing I can do is to let other people know then what I know now. Starting to program is something a lot of people say they want to do, and looks very intimidating. At first it's like you're standing in front of a large brick wall that everyone is sitting on top of, calling down on you from above, "Come on up!" What you should realize is that those up top have really long arms and are willing to use them to pick you up. Weird long armed people wall analogy aside, starting to learn to program can be very intimidating and, at most times, not very intuitive. Good thing you have experienced programmers to help you on your way. So, here I'm going to outline what I would do if I got a stroke or lost a large chunk of my brain and wanted to relearn to program, but I still knew the way to learn it (Warning: The weird analogies won't stop here.)
I'm not claiming these are the best practices, but they are practices that I've learned to be best for me from experience. Some people may have different learning methods and would need different ways to learn to program. So if it doesn't sound like this will really help you, then don't do it. Or, if you start it and it doesn't really seem to help, then try something else. Just remember, that these are suggestions.
1. Read TutorialS
The capital 'S' is no typo folks, read a lot of them. Read a good one at first to get the idea, and once you finish it and your brain marinates in it for a night, then read another one. If the language you're learning is popular enough then there should be tutorials and how-tos aplenty on learning it. Read as many as you can, even after it gets boring and repetitive, because that's the point. You can probably knock out a tutorial every day or two this way and be working with the basics by the end of the week.
This helps out in several ways: First of all, you get exposed to the same material so much that you're bound to remember something about it. Second, different people explain the same thing different ways. Someone might think that a certain feature of a function is important to mention, while another person will leave it out completely form their explanation. You'll get a wide understanding of all the ways the language can work, you might notice that while you're reading different tutorials that you can start filling in parts about syntax and features that they've forgotten to mention, but that you remember. Also, you'll be reading a lot of different people's code, another beneficial practice.
Don't just read on-line tutorials either. I'm not going to suggest buying a book since the information in the book will most likely be available somewhere on-line, but there are tons of free e-books about programming. If you've got a library card, your local library will possibly have some books on the topic, especially if it's a university library. Only buy a book if it's a particularly renowned, de facto book on the subject (such as the Camel and Llama books for Perl.)
2. Constructively Read
While you're reading all of this material, try thinking up how you could use what they're talking about, then try it. Pull out your compiler and start messing around with how you think you could use it. It might be hard in the beginning when all they talk about is declaring variables, but you'll get past it.
3. Practice What They Preach
A lot of those tutorials will have code examples to display how something works, DON'T COPY AND PASTE IT. Write it out word for word. Better yet, write it out differently from how they write it and see if it still works the same way. Then think about which way would work better.
Tutorials also usually have quizzes or practice programs at the end of a topic. Try all of them, no matter how pointlessly easy they seem. If there are multiple choice questions that you don't know the answer to, try doing a program that tests what you think it might be and work it out from there. If you're not too bored with their examples, then try doing them all in different ways, think of a faster way to do it, or even a longer way.
4. Make mistakes
If you are trying to remember how something works, or if you want to know if something will also work a certain way: Don't look up a reference, try it. Write out how you think it would work out and run it through the compiler. If it didn't work, then you know better now, and have a better chance of remembering it. If it works, then you've got a new tool under your belt.
5. Solve Simple Problems With a Program
Have a math class? Then chances are you can write programs to make things easier on you. This will be beneficial for both your programming and your math. You'll get more experience programming, and if you can deconstruct and generalize a math problem into a program, you'll probably better understand how to solve that without a computer as well.
Taking a language class? Write a flash card program. Can't ever remember what you're supposed to do? Write a simple planner program. Want to wake up to something other than the radio or an obnoxious beep? Write an alarm clock program that plays your music. Is there a certain conversion you make often in your head that takes a more time than it could? Program. Like to play tic-tac-toe but no one else does? Program. The possibilities of simple programs are nearly endless.
6. Work Out Coding Challenges
There are tons of web sites on the Internet that have programming puzzles for people to solve in most any language you want to use. These range anywhere from super easy to nearly impossible. These will familiarize you with both all of the features in your language and common problem solving techniques. This is especially useful when you have no simple problems to solve with a program.
7. Join a community
Want to become really good at coding? Surround yourself with it. Joining a programming community like DIC is beneficial in so many ways it's silly. First, you get to network with fellow programmers, always a good thing. Second, if you've got problems that not even Google can solve, they've got answers. Third, eventually you'll have answers to questions that someone else can't find, and explaining how it works will help you understand it better. Fourth, you'll get to read a lot of code, a good thing to be able to do. The list could keep going. (By the way, if you haven't figured out yet, Dream In Code is a pretty amazing community to join.)
8. Write A Tutorial
It may seem like there are millions of them already, and yours won't be any different, but write a tutorial of your own once you think you understand the language well enough. You'll understand everything with the clarity equal to using Windex on your brain after you explain it to other people.
9. Only Learn One Programming Language
I know now that you've learned one programming language pretty quickly, you want to learn them all. But you've only learned the basics. Don't be discouraged! The basics are still a lot, but if you drop it now and try cramming more stuff in your brain, then eventually your brain will have a stack overflow and you won't remember all the good stuff from your first language. Try waiting several months after you've learned your first language to try your hand at another.
10. Learn the Language's Paradigms
Every language is made to work well a certain way, make sure to learn that way. Don't try functional programming in an object oriented language (unless it is a multi-paradigm language.) But understanding a language's optimized use is a step closer to being a pro at that language.
If you follow this, there's a good chance you'll be on your way to becoming a proficient programmer. But it doesn't just stop there, in my next blog entry I'll be explaining where to go after you've climbed up the giant brick wall to run into your next giant brick wall. Don't worry, the people on top of there have pretty long arms as well.
I'm not claiming these are the best practices, but they are practices that I've learned to be best for me from experience. Some people may have different learning methods and would need different ways to learn to program. So if it doesn't sound like this will really help you, then don't do it. Or, if you start it and it doesn't really seem to help, then try something else. Just remember, that these are suggestions.
1. Read TutorialS
The capital 'S' is no typo folks, read a lot of them. Read a good one at first to get the idea, and once you finish it and your brain marinates in it for a night, then read another one. If the language you're learning is popular enough then there should be tutorials and how-tos aplenty on learning it. Read as many as you can, even after it gets boring and repetitive, because that's the point. You can probably knock out a tutorial every day or two this way and be working with the basics by the end of the week.
This helps out in several ways: First of all, you get exposed to the same material so much that you're bound to remember something about it. Second, different people explain the same thing different ways. Someone might think that a certain feature of a function is important to mention, while another person will leave it out completely form their explanation. You'll get a wide understanding of all the ways the language can work, you might notice that while you're reading different tutorials that you can start filling in parts about syntax and features that they've forgotten to mention, but that you remember. Also, you'll be reading a lot of different people's code, another beneficial practice.
Don't just read on-line tutorials either. I'm not going to suggest buying a book since the information in the book will most likely be available somewhere on-line, but there are tons of free e-books about programming. If you've got a library card, your local library will possibly have some books on the topic, especially if it's a university library. Only buy a book if it's a particularly renowned, de facto book on the subject (such as the Camel and Llama books for Perl.)
2. Constructively Read
While you're reading all of this material, try thinking up how you could use what they're talking about, then try it. Pull out your compiler and start messing around with how you think you could use it. It might be hard in the beginning when all they talk about is declaring variables, but you'll get past it.
3. Practice What They Preach
A lot of those tutorials will have code examples to display how something works, DON'T COPY AND PASTE IT. Write it out word for word. Better yet, write it out differently from how they write it and see if it still works the same way. Then think about which way would work better.
Tutorials also usually have quizzes or practice programs at the end of a topic. Try all of them, no matter how pointlessly easy they seem. If there are multiple choice questions that you don't know the answer to, try doing a program that tests what you think it might be and work it out from there. If you're not too bored with their examples, then try doing them all in different ways, think of a faster way to do it, or even a longer way.
4. Make mistakes
If you are trying to remember how something works, or if you want to know if something will also work a certain way: Don't look up a reference, try it. Write out how you think it would work out and run it through the compiler. If it didn't work, then you know better now, and have a better chance of remembering it. If it works, then you've got a new tool under your belt.
5. Solve Simple Problems With a Program
Have a math class? Then chances are you can write programs to make things easier on you. This will be beneficial for both your programming and your math. You'll get more experience programming, and if you can deconstruct and generalize a math problem into a program, you'll probably better understand how to solve that without a computer as well.
Taking a language class? Write a flash card program. Can't ever remember what you're supposed to do? Write a simple planner program. Want to wake up to something other than the radio or an obnoxious beep? Write an alarm clock program that plays your music. Is there a certain conversion you make often in your head that takes a more time than it could? Program. Like to play tic-tac-toe but no one else does? Program. The possibilities of simple programs are nearly endless.
6. Work Out Coding Challenges
There are tons of web sites on the Internet that have programming puzzles for people to solve in most any language you want to use. These range anywhere from super easy to nearly impossible. These will familiarize you with both all of the features in your language and common problem solving techniques. This is especially useful when you have no simple problems to solve with a program.
7. Join a community
Want to become really good at coding? Surround yourself with it. Joining a programming community like DIC is beneficial in so many ways it's silly. First, you get to network with fellow programmers, always a good thing. Second, if you've got problems that not even Google can solve, they've got answers. Third, eventually you'll have answers to questions that someone else can't find, and explaining how it works will help you understand it better. Fourth, you'll get to read a lot of code, a good thing to be able to do. The list could keep going. (By the way, if you haven't figured out yet, Dream In Code is a pretty amazing community to join.)
8. Write A Tutorial
It may seem like there are millions of them already, and yours won't be any different, but write a tutorial of your own once you think you understand the language well enough. You'll understand everything with the clarity equal to using Windex on your brain after you explain it to other people.
9. Only Learn One Programming Language
I know now that you've learned one programming language pretty quickly, you want to learn them all. But you've only learned the basics. Don't be discouraged! The basics are still a lot, but if you drop it now and try cramming more stuff in your brain, then eventually your brain will have a stack overflow and you won't remember all the good stuff from your first language. Try waiting several months after you've learned your first language to try your hand at another.
10. Learn the Language's Paradigms
Every language is made to work well a certain way, make sure to learn that way. Don't try functional programming in an object oriented language (unless it is a multi-paradigm language.) But understanding a language's optimized use is a step closer to being a pro at that language.
If you follow this, there's a good chance you'll be on your way to becoming a proficient programmer. But it doesn't just stop there, in my next blog entry I'll be explaining where to go after you've climbed up the giant brick wall to run into your next giant brick wall. Don't worry, the people on top of there have pretty long arms as well.
0 Comments On This Entry
← January 2022 →
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
Tags
My Blog Links
Recent Entries
-
Moving On Properon Apr 22 2009 09:10 AM
-
Proper First Stepson Apr 21 2009 01:59 PM
Search My Blog
2 user(s) viewing
2 Guests
0 member(s)
0 anonymous member(s)
0 member(s)
0 anonymous member(s)



Leave Comment








|