Live data from Hacker News

How to improve your programming skills

antoarts.com

31–40 of 93 posts

Re: How to improve your programming skills

#32

"Learn a new programming language" I would rephrase this to learn a new programming paradigm . There are fundamental differences between static typing and dynamic typing, object orientation and functional, manual memory management and garbage collection. There are also "pure" single-paradigm languages and multi-paradigm languages. If you learn the same type of language multiple times, you're really just learning new…

I went like this CPP -> Java -> Haskell -> Python -> Ruby -> Coffeescript and elisp somewhere inbetween. I learned a lot about languages but there are many of my friends who know just PHP or Java and who are much more productive day to day than me. My advice to someone would be to pick one language an learn it really well so you can do pretty much anything in it. Do Code Katas, make stuff all the time. When you're bo…

The c preprocessor is a hardcore place to start programming.

Re: How to improve your programming skills

#34

For those of you who get a database error, I think it is the huge amount of traffic I'm getting at the moment which causes this (>1000 visits last hour). I'm using shared hosting, which might have problems with this, so in one way, you are DDOSing my site ;-). I don't know if it is safe to tell you to just wait and reload the page, but do that, BUT NOT TOO FAST!

Are you using any caching module, e.g. Hyper Cache for WP? If not, you should give it a try.

Re: How to improve your programming skills

#36
post #32

Earlier quoted context omitted.

I went like this CPP -> Java -> Haskell -> Python -> Ruby -> Coffeescript and elisp somewhere inbetween. I learned a lot about languages but there are many of my friends who know just PHP or Java and who are much more productive day to day than me. My advice to someone would be to pick one language an learn it really well so you can do pretty much anything in it. Do Code Katas, make stuff all the time. When you're bo…

The c preprocessor is a hardcore place to start programming.

:D

I meant C++

Re: How to improve your programming skills

#37
post #17

11. Rewrite something that desperately needs to be rewritten. So many times I've encountered something and thought, "I can't believe that people are actually expected to use this software." It was bad from a user perspective: difficult to use, slow, tedious to do what you actually needed to do, unable to "get there from here". Then once I looked under the hood, it was often worse: built upon a horribly designed data…

Rewriting something is most definitely a good way to learn that a) rewrites are easy to underestimate, and often not such a good idea as they seem, and b) the previous programmer may not be such an idiot as you first thought.

Understanding the thinking behind other peoples code (yes, even crap code) is one of the hardest programming skills to acquire.

Re: How to improve your programming skills

#38
post #34

For those of you who get a database error, I think it is the huge amount of traffic I'm getting at the moment which causes this (>1000 visits last hour). I'm using shared hosting, which might have problems with this, so in one way, you are DDOSing my site ;-). I don't know if it is safe to tell you to just wait and reload the page, but do that, BUT NOT TOO FAST!

Are you using any caching module, e.g. Hyper Cache for WP? If not, you should give it a try.

I started using one just recently. I'm not a web developer and I just installed WordPress less than a month ago. Apparently, PHP scripts are heavy to execute :S

It seems to work better now.

Re: How to improve your programming skills

#39

"Learn a new programming language" I would rephrase this to learn a new programming paradigm . There are fundamental differences between static typing and dynamic typing, object orientation and functional, manual memory management and garbage collection. There are also "pure" single-paradigm languages and multi-paradigm languages. If you learn the same type of language multiple times, you're really just learning new…

Counting proper languages I actually wrote something useful in, my path looks like:

C64 BASIC -> C64 raw machine code -> QBasic -> x86 raw machine code -> Turbo Pascal -> C -> Visual Basic -> Java -> O'Caml -> Delphi7 -> Python -> C++ -> Erlang -> C# -> Haskell -> F# -> JavaScript

To keep learning very different languages is also what guarantees you will be able to get a good job when your bread-and-butter language falls out of fashion. Try to imagine being a 60-year old Cobol-only programmer in the job market today. In addition to getting some experience with the actual languages, you will also get a good grip of the underlying patterns and ideas, which will make it a breeze to pick up any new language.

Another mostly overlooked skill that you gain from working in radically different languages, is to be able to work with different priorities. Java and C++ are designed for serious work. In these, you take types, error checking and exceptions seriously, you keep the code clean and robust, and you R the FM thoroughly for every single external function you call. Visual Basic, on the other hand, is designed for slapping together something that gets a small job done. Errors can be ignored, text encoding can be fucked up, functions can run into 500 lines, and that's simply something you should be comfortable with when in VB - it's copy/paste/hack/throw away all the way. C# is again very much like Java, but without the documentation attitude. Critical bits of the standard library are woefully undocumented, and you are expected to just try some code and see if it works. When in C#, just accept that and be comfortable with it.

But, most importantly when learning a new language: Adopt the mindset. Don't try for type-safe Python. Don't write slapdash C++ code. Don't try for time-critical optimized VB. Don't box/unbox everything in F# to get dynamic typing.

Re: How to improve your programming skills

#40

Really good article, I agree with every point. If I were to add to it I stress the importance of reading books by different authors and publishers, even if they're about the same subject. This helps you get a much wider, well-rounded view and it often improves the learning experience.

I agree, reading books of different perspectives is great.

I would also like to bring up the importance of reading "good practices" books and articles. Learning not only how to write good code for yourself, but good code for your colleagues to work with is an important skill to have. Writing maintainable code is often not trivial. I recommend reading Effective Java by Joshua Bloch.

Post reply on HN