rendon
January 28th, 2008, 12:48 AM
What have been your biggest hurdles to overcome when learning programming?
I'm curious about what people think is the most difficult, time-consuming aspect of programming in general.
Before I knew what I was doing, I was digging deep into a C++ book that I bought from Barnes and Nobles back in 1999, I learned everything from loops and conditions to arrays and classes in that book, although I didn't understand what a class was and it took me a long time to understand why I would need classes to make a program...
About that same time, I met someone who said "reading, writing, and saving to a disk, that's all you need to know!". And it dawned on me that I wasn't saving any info at that time, so I got into the exciting hobby of writing info to files, and recalling it the next time I ran the program. But still didn't find this challenging!
After 8 years of programming, and now being a web-based developer for a small company with experience at creating 3 or 4 dynamic websites and managing a server (Ubuntu server btw :) ), I would say the following were my biggest hurdles to overcome to get me where I am in programming today:
1) anything dynamic! classes, nodes, polymorphism, Java's inheritance, etc. These these are not only big brain-teasers, but very difficult to put into a real-world situation until you are actually working with people together. I think you either need to write the same function over and over a hundred times until you realize that you can just store it in some type of class and call it, or, you need to be working for somebody who is constantly changing their mind about how they want things to work before you finally realize that you save time by doing things dynamically...
2) STRING PARSING! got that database organized? is your XML flawless? no it's not! because here comes Mr. Javascript! He's going to change the encoding and capitalization of all your html without you knowing it! And Mr. PHP doesn't like the & symbol input here and there, it will ruin the script! did you know that PHP is going to automatically store that XML as utf-8? Whatch out for Mr. Foreign Language! He might visit your site and give your database a crash or two!
String parsing has by far given me the most headache of my life.
Mind you that 8 years ago PHP and/or even Perl were a lot different than they are now. And I believe even the structure of C++ has change a lot then. I remember spending days trying to get C++ to take a string and turn it into what I wanted,... perhaps only to find out that the compiler I was using wasn't good, then going on a mission of the quest for the ultimate compiler, only to end up back where I started! :)
I also recall trying to use Perl to get some POST or GET data, it was expected that you understand a line of REGEX to get rid of all of the erroneous data that came through the browser. something that would look like (s/fgs(*&#$j43kl;.a/ss8349(*NF#$) was supposed to be the new EASY way to parse that line! And just because it worked on one server didn't mean it would work on another one!
currently, my favorite (or most used) languages are: python, PHP, javascript, java, and Flash actionsript (although maybe not an official language, but you'd be surprised what you can do with it).
Please understand my complaining is also based on a large lack of education, I taught myself all of these things with nothing but books, tutorials, and forums. So I suppose it's just me learning the hard way sometimes.
Anyway, I hope you can share some of your hardships here for venting or educational purposes!
I'm new to this forum, hope to stick around and become part of the community. Been using Ubuntu for about 2 or 3 months now and enjoying the experience very much!
I'm curious about what people think is the most difficult, time-consuming aspect of programming in general.
Before I knew what I was doing, I was digging deep into a C++ book that I bought from Barnes and Nobles back in 1999, I learned everything from loops and conditions to arrays and classes in that book, although I didn't understand what a class was and it took me a long time to understand why I would need classes to make a program...
About that same time, I met someone who said "reading, writing, and saving to a disk, that's all you need to know!". And it dawned on me that I wasn't saving any info at that time, so I got into the exciting hobby of writing info to files, and recalling it the next time I ran the program. But still didn't find this challenging!
After 8 years of programming, and now being a web-based developer for a small company with experience at creating 3 or 4 dynamic websites and managing a server (Ubuntu server btw :) ), I would say the following were my biggest hurdles to overcome to get me where I am in programming today:
1) anything dynamic! classes, nodes, polymorphism, Java's inheritance, etc. These these are not only big brain-teasers, but very difficult to put into a real-world situation until you are actually working with people together. I think you either need to write the same function over and over a hundred times until you realize that you can just store it in some type of class and call it, or, you need to be working for somebody who is constantly changing their mind about how they want things to work before you finally realize that you save time by doing things dynamically...
2) STRING PARSING! got that database organized? is your XML flawless? no it's not! because here comes Mr. Javascript! He's going to change the encoding and capitalization of all your html without you knowing it! And Mr. PHP doesn't like the & symbol input here and there, it will ruin the script! did you know that PHP is going to automatically store that XML as utf-8? Whatch out for Mr. Foreign Language! He might visit your site and give your database a crash or two!
String parsing has by far given me the most headache of my life.
Mind you that 8 years ago PHP and/or even Perl were a lot different than they are now. And I believe even the structure of C++ has change a lot then. I remember spending days trying to get C++ to take a string and turn it into what I wanted,... perhaps only to find out that the compiler I was using wasn't good, then going on a mission of the quest for the ultimate compiler, only to end up back where I started! :)
I also recall trying to use Perl to get some POST or GET data, it was expected that you understand a line of REGEX to get rid of all of the erroneous data that came through the browser. something that would look like (s/fgs(*&#$j43kl;.a/ss8349(*NF#$) was supposed to be the new EASY way to parse that line! And just because it worked on one server didn't mean it would work on another one!
currently, my favorite (or most used) languages are: python, PHP, javascript, java, and Flash actionsript (although maybe not an official language, but you'd be surprised what you can do with it).
Please understand my complaining is also based on a large lack of education, I taught myself all of these things with nothing but books, tutorials, and forums. So I suppose it's just me learning the hard way sometimes.
Anyway, I hope you can share some of your hardships here for venting or educational purposes!
I'm new to this forum, hope to stick around and become part of the community. Been using Ubuntu for about 2 or 3 months now and enjoying the experience very much!