Live data from Hacker News

How to improve your programming skills

antoarts.com

51–60 of 93 posts

Re: How to improve your programming skills

#52

Learning Javascript changed my Perl for the ... more fun to write. Possibly better, too. I've started passing around coderefs as arguments to functions a lot more recently, and allowing people who use my APIs to do just that... I've been writing code that allows you to describe a website in data and at a high level recently, and builds you up all the methods you need to interact with it. In general, when people need…

Ha! I thought I was the only one... When I first learned Perl two years ago, I wrote my programs in a very boring, imperative C-like style; in the time that passed, I exposed myself to the functional side of Python while also learning some deep Javascript; last month after having come back to Perl, I noticed that the new code I am cranking out basically looks like Lisp with some curly brackets in-between.

God, do I hope that the programmer that comes after me is as excited about the code-as-data, data-as-code paradigm as I am... Or at least can understand anything I wrote :)

Re: How to improve your programming skills

#53
post #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.

This is something that took a lot of mistakes to learn for me. Replace only the code that's definitely wrong, and resist the urge to start over. Whenever I see a project announce that they're going to rewrite the next version, I know I'll never see it.

Re: How to improve your programming skills

#54
All of the advice given here is good and none of the tips here are going to hurt you.

It's just another less abstract reiteration of a few truths that encompass much more than programming.

Work with different tools. Think. Talk about what you do with other people. Do all of it a lot.

Re: How to improve your programming skills

#55
> 10. Don’t rush to StackOverflow. Think!

Disagree with this one. My rule is, "If you get stuck for more than 10 minutes, post to StackOverflow." I'll post my question then continue trying to solve it myself. Sometimes someone will post a good answer right away, saving me lots of time. Other times I'll end up solving my problem on my own, but I'll still learn something valuable from a comment or answer somebody posts to my question. Here's a good example of what I'm talking about:

http://stackoverflow.com/questions/6327396/set-time-part-of-...

Re: How to improve your programming skills

#56
post #43

But how does one get ideas for a project? I started learning programming using C++ about 5 months ago. I've been making good progress on learning the concepts but I just can't think of anything useful to create.

Do you do anything? Like, anything at all besides learn C++? Do you know anyone else who does things? Think about what parts of those things are suboptimal and create something to make it better.

For example, where I work, we get a lot of user-submitted content, but we can't use all of it. So we need to filter. The lady who is primarily responsible for this simply doesn't have the time to vet the massive number of images she runs across to make sure they meet some basic criteria for size and quality, so I wrote a program that mostly automates it.

Re: How to improve your programming skills

#58
post #48
post #39

Earlier quoted context omitted.

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 f…

i always hear about how many jobs there are for cobol programmers to maintain legacy code. i've never actually met any though. maybe they all commit suicide.

I've heard about a lot as well, especially in the banking industry, yet not actually met anyone. Does anyone have any data or any numbers on how much someone can get paid doing cobol legacy maintenance? Just for educational purposes of course.

Re: How to improve your programming skills

#59
post #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 f…

> 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.

So how do they compare to Haskell, especially when it comes to types and code cleanliness?

For those who don't have Haskell listed in their path, I'll tell you: Haskell takes types a lot more seriously, but they're so different from what a C++ or Java programmer would think of as types that it's difficult to make a direct comparison. Ditto error checking, which, to a large extent, is baked into the type system such that it's a compilation error to not check for a lot of problems. Cleanliness is practically an obsession, to the point you'll wonder how anyone can write useful code in Haskell until a switch flips in your head and you begin to wonder how people can live with Java and C++. ;-)

Frankly, every language you learn should cause a switch to flip in your head like that.

Re: How to improve your programming skills

#60
post #56
post #43

But how does one get ideas for a project? I started learning programming using C++ about 5 months ago. I've been making good progress on learning the concepts but I just can't think of anything useful to create.

Do you do anything? Like, anything at all besides learn C++? Do you know anyone else who does things? Think about what parts of those things are suboptimal and create something to make it better. For example, where I work, we get a lot of user-submitted content, but we can't use all of it. So we need to filter. The lady who is primarily responsible for this simply doesn't have the time to vet the massive number of im…

Well, I'm a college student, so no I don't do much else aside from learning how to do stuff.
Post reply on HN