To many people, if not most, computer programming is not at all a creative process. It is merely a means of getting a paycheck. In the short term anyone bright enough to pick up a college degree need not do much more than that to find themselves a job in the computer industry these days. But for those who want to get into programming (I mean seriously into programming), and those that feel drawn towards computer programming, I can make some recommendations about some bad ideas to avoid as you journey this intellectually gratifying path.
There are a bunch of ways to make your programs go faster, or seem to go faster that, as a beginner, is more likely to deceive the way you think about program performance optimization. The stuff you learn about programming optimization initially almost invariable turns out to be wrong (e.g. unmanaged programs are always faster than their managed counterparts). If when reading other people's code seems a little perplexing or over your head, you should probably take that as an indication that you have a long way to go before considering yourself an advanced programmer.
Many programmers fall into this trap. I should know because I fell into it. My first interaction with "real programmers" was enough to cure me of that. I quickly learned that others, who might not even be as smart as I am, had all these hard-won tricks and tools up their sleeve. At first, I was falling behind them, and causing all sorts of problems with my own ideas of how to program. I eventually reached a crux, and I had to make the decision to either combust under my own deceptions about how to program, or to meekly ask advice and get help from others. I eventually chose the latter, and I am now a far better programmer for it.
In my book, if you believe that, you are a beginner. You can have years, or decades of experience, but if you cannot appreciate the importance of assembly language, you will always be inexperienced. Learning assembly (and not just superficially) is beneficial, even if you don't use it on a day to day basis. It will help you even when you are writing code in other languages. Assembly language is also essential to knowing how your computer really works. It is self evident, but far too many people either miss or play down this point.
The problem is that the folks who never completed a college/university degree don't know what education they are missing, and the people who have just done everything through school, have nothing more to offer but textbook answers. You may do a lot of self-teaching, but going to university and doing all the CS courses there is something that will help keep you ahead. You will answer the academics with real world pragmatic answers, and answer hackers with cleaner, better solutions based on solid foundations.
Yes, that may hold true when talking to granny. But do you know who a programmer really is? Programmers are people who delve into details about things, and have aptitude for understanding these things usually with less than all the instructions. Programmers' tools are pure logic, understanding of protocols, and fair degree of proficiency with arithmetic. Good programmers are creative, and always try to come up with innovative ideas or approach to solving difficult problems.
January 23, 2013 at 15:47 GMT
- Don't try to optimize yourself, most of the time, the actual compilers are able to do better than you with optimization options
- BTW, never underestimate stupidity, I've seen so many crappy pieces of code written by other people (even good programmers)... Anyway, don't change it by yourself, just communicate with the original programmer and try to convince him that your solution is better. (And you may both learn things)
- Assemble will never be obsolete as it is the only real language the computer can understand ;-) Problem: there are so many different processors that you should at least learn how to program different kinds
- Unfortunately, I disagree on the higher education and my 16+ years exp. in programming proves it: most of the time, nice diplomas make crappy programmers - But never forget to learn things
- True programmers are artists
January 23, 2013 at 16:12 GMT
Thank you Vince for that insightful input. On the *higher education* point, I was trying to reach those who have the opportunity to study computer science (or courses alike) at the university/college but decide not to, simply because "real programmers are self-taught". It's true so many great hackers dropped out of school to successfully pursue their own interests but I believe just 3-4 years in college wouldn't be a waste of time -- assuming you're not a clone of Aaron Swartz and you have a good school to attend :)
January 25, 2013 at 22:59 GMT
Thanks for the little advice Mike, I must confess, am totally confuse now.
I started learning real programming somewhere in september 2012, my first language was ANSI C, I do self-teaching, likely for me I have a friend who is ahead of me in programming who offer me some tips and couple of advice in this field, I always yearn to be a good programmer like him, simple because he knows almost every bits of Language such as ANSI C, C#, C++, BATCH FILES, VISUAL BASIC,VBScript, JAVA-Script, JAVA, PERL, SQL, PHP and the Mark-Up languages and use them to solve simple problems everyday.
Unfortunately for me, after little exp in C, I jump to Win32API, after some mess-up, I came back to C and then to BATCH FILES then to C# which i fell in love with, I use IDE throughout by the time I was learning C#, after writting some programs not a challenging one I stop and focus on SQL which is easy to learn and understood within a short time.
Lately, am going through some problems at home that distant me from the pc for sometime now, on the 22nd of January 2012, I finally turn on my laptop and then try to write some code in C# using a simple Notepad, in-fat I was amaze with the mess, I can't even remember a control name.....
I was getting better in the beginning, but now am crashing down......All that I have worked for seems to have vanished.
January 27, 2013 at 04:16 GMT
Hi Ray. What you are going through is very common among beginner programmers. Don't worry about forgetting concepts. Your mind will take care of remembering what you use the most. And don't even bother memorizing things like APIs and every detail of the libraries you use because it's practically impossible nowadays (given how huge they are). Good development environments (Visual Studio, for example) can help you remember class properties, methods, etc. till you really get a hang of it. Don't quit! Programming is fun - and profitable, too.
Comments are currently closed on this content.