Message To New Programmers Writer #1, 2010-06-15 So you’re embarking on a programming career, are you? Personally, I’ve been graduated for only 1 year but my experience is technically 2 years, no pun intended, thanks to my co-ops while in college. Before I get so far into my career that I forget my education process I figure I should record it so that all other newbies can read it, be encouraged, and not get lost in the temporary confusion that you’re surely experiencing here and there. When I first began I was getting into web technologies, and they are still my favorite. I got a book from a library about HTML. I committed to memory how to make an HTML structure on a .txt file, by hand, without any help. Then I got into CSS and was slightly intimidated but I got a good handle on it. And then, I looked at programming. That is where I got stuck. Programming is such an obscure thing, if you don’t know what you’re looking at. Without someone there to tell me what is what, I was more than confused, I was helpless and useless. That’s when I decided to go to college to learn. Programming in College I was fortunate enough to go to RIT, Rochester Institute of Technology, a highly respected technical school in Upstate/Western New York. They really handled the programming process nicely, I think. The classes were divided into two sections. First was the professor teaching and showing, second was us applying what they taught during the lecture. That was really great to help remember what was going on. It was, however, not easy. At first, I learned: public static void main(String[] args){} and I thought I could do anything. After all, I could make something happen on a computer. Up until that point I just clicked stuff and executed what other people developed. My tiny “hello world” program was a great start and I really saw the potential there. Shortly into the learning process I began getting lost. I remember thinking, “Why do they make this stuff so hard?!” I literally remember praying and asking God to help me through the education and I asked God why it was so hard. Suddenly, the thought came to my mind that if it were easy then it wouldn’t be a specialized field and everyone would be able to do it. Just the fact that it is hard makes it more valuable! Test Taking Testing in programming is like nothing else. You literally know how well you are doing while you take the test. Other subjects require you to wait for your grade to know. In programming, your application is either working or it’s failing. And if it’s failing, then you are too. About two thirds into the semester (trimester technically) I had the last test, or maybe it was the second to last test. It was in java using strings. I was lost. I muddled through the homework well enough to get a good grade on the homework but during the test I bombed. I remember literally feeling sick to my stomach because I knew I was failing as I was taking it. I was around 29 years old and literally wanted to cry during the test. All my efforts were failing! As I struggled I was burdened with the knowledge that a failing grade means that I have to repay my tuition reimbursement which was like $1500 for that class. So the struggle to make a program work was coupled with the fact that I had about an hour to make it work or pay $1500 back to my employer for the class they were funding. That knowledge didn’t help me do better. At the end of the test I knew I did horribly. The question was “how horribly”? Honestly, I forgot the grade but it was beyond failing. Maybe like a 40% or so. The next class we got our tests back and everyone failed! I was so happy! The professor said he would go over the material again and give a retest! Not wanting to fail again, I contacted a guy in my church named Fred who programmed in Java for a living. We got together one night for about 4 hours and he taught me everything I was missing. I left his house very late at night with a grasp of programming that I hadn’t had from classes alone. On the retest I got a 100%. Then, on the final exam, I got a 100%. Just that (relatively) short session with Fred got me on course and solidified my knowledge and understanding so that I was a master of the basics of programming. Moving right along… So, I went through that story to communicate the fact that it can be hard to program but it’s worth the effort. Once you get your brain to see through what is blocking you, you will understand things and you will become fluent in programming languages. It won’t look confusing all the time. Just in the beginning. In a nutshell Programming is really only a couple of things. First, it’s just seeing a process and being able to identify the skeletal structure of the process and break it down. This comes with practice. Second, it’s training your brain to not take any values for granted. In the beginning, I spent quite a while wondering why my calculated values weren’t showing up when my program ran. Eventually I realized that it’s because I never programmed them to show up! If you don’t tell it to print to the screen then it won’t. Your mind is trained to expect things. Programming is the process where nothing exists and you make it exist. Your expectations are useless. You are to your application as God is to the universe. It is not so until you make it so. Actually, after you train yourself to explicitly program every step, your expectations become the still small voice within you telling you what your users will want. You think, “I wish there were a way to do ________”. Well guess what… your users will want it to. Make it. You have that power. [to be continued] Programming new programmers