Learning how to program is like learning how to play a sport or learning an instrument. It's a dynamic process that has a lot of different patterns that are used consistently. These patterns include:
- Opening/Editing/Closing files
- Adding files in certain locations
- Setting up and editing database configuration and such
- Using the debugger to fix runtime errors
- etc.
When learning to play a sport or an instrument, you practice the fundamentals of the patterns you use that you can then use in a game/performance.
Take Baseball as an example. To get better in Baseball, you practice. During practice you go over things like:
- Sprints to get faster at running the bases or running after the baseball
- Catching Fly-Balls to improve at focusing on the ball and catching it
- Taking Ground-Balls to improve at catching grounders
- Throwing to improve at accuracy and strength or throwing the baseball
- Batting to improve on hitting the ball with the bat
These things are repetitive things you practice to get better so that when you're thrown into a game situation, you are ready for whatever comes your way.
What most programmers do
Programmers don't tend to like to practice. They tend to just dive in and handle whatever comes their way. This is completely fine, because even though they never "practice", they get all the practice they need during game-time. They aren't being quizzed and no one is judging them for making a poor decision on the fly.
However, I still think there's a lot of value in practicing correctly with programming. Without the proper repetition, you don't learn as effectively. Even after years of programming, I'm not as fast as I could be when developing a new application or debugging an application. What practicing allows you todo is develop reactive memory that will allow you to, with little to no thinking, sprint out many lines of code without doing much thinking. This allows you to build more over time and be more productive with your time.
What you should do
What should generally happen is you should set out for incremental learning over a long period of time. I'd say try to focus 30 minutes a day on practicing programming something that starts out very small. An example would be build a website from scratch that displays "Hello World" on the home page. This example may only take 5 minutes on the first day, and that's completely fine. You want to build up, adding something small each day. On the 2nd Day you could add css to that Hello World, making it blue instead of black. On the third day you could add a header. The important to note that every single day you start from scratch. You create a whole new rails application every single day that you will know how to build, so that process of building is reactive, and you can use that for building other applications very fast.
I like to think of this type of learning like a video game that you replay over and over again. Over time you get really fast at doing the commands, and so you're able to beat each level extremely quickly, and it builds your overall gameplay. With this style of learning, it's best to time yourself everyday to see how fast you can complete the application up to that point in. You should be getting faster, or remaining at a similar time if it's your computer that is the bottleneck, with each sequential day.
Overview
Do it, it will help
No comments :
Post a Comment