标签云

微信群

扫码加入我们

WeChat QR Code


Practice, practice, practice. And never be satisfied with the first thing that comes to mind.

2018年09月27日31分54秒

+1 for Mark Ransom...The difficulty comes when you're still not satisfied with the 100th thing that came to mind!

2018年09月27日31分54秒

Not wasting any of my time on Programmers Stack Exchange site helped me improve my coding skills immensely.

2018年09月26日31分54秒

Mark Trapp how is this not constructive?

2018年09月26日31分54秒

WTP - Read the description. "This question is not a good fit to our Q&A format." - as someone who asked this question, I agree. It was asked in more relaxed times.

2018年09月26日31分54秒

I know it seems really gratuitous and potentially reputation whoring, but if you separated those items out to one per answer people could vote up which ones they agreed with, allowing for a more specific end vote "solution" of this question.

2018年09月27日31分54秒

Watch how smarter people handle mistakes - that's when I learn the most from them

2018年09月27日31分54秒

if this is a list in no particular order, shouldn't it be an unordered list rather than an ordered one? :P

2018年09月27日31分54秒

I agree with mmyers - just because you disagree with someone doesn't mean you're ignoring them. Actually, it's the opposite - in order to disagree with them you're actually paying attention to them.

2018年09月26日31分54秒

I don't cart-blanche disagree with everything Joel says, I think much of the time he has some interesting things to say. My comment was tongue in cheek. There's a lot of stuff that I agree with when it comes to Joel, but about once a month he makes me shake my head and ask "What? Are you serious?!". Which I love, as I find those the most challenging things that force me to really check my position and what I believe.

2018年09月27日31分54秒

"Jack of all trades, master of none, though often better than a master of one." -Adam Savage

2018年09月27日31分54秒

Excellent advice, up voted. The "orphan tech" in my past was my 8-bit Atari, which lost out to the C64. I reached the same conclusion though - to quote Heinlein, "specialization is for insects."

2018年09月27日31分54秒

There are always tradeoffs, and there's only 86,400 seconds in a day -- you'll have to decide how you want to spend them. In my case, I've chosen to spend extra hours (above and beyond my 'work' hours) to learn things that I thought were interesting or were going to be in demand in the future; you'll need to make your own choices.

2018年09月27日31分54秒

"Specialization is for insects." - Heinlein

2018年09月27日31分54秒

Where is your "Generalist" badge? ^^

2018年09月27日31分54秒

That typically works both ways. I've come into a few companies now as an 'Aaron' and found that once I get the other coders energized that they start to give me a run for my money and encourage me to redouble my own efforts. Great post!

2018年09月27日31分54秒

+1 for "Aaron was always talking about how I should never stop at the first working version, but refactor and refine until the code is elegant"

2018年09月27日31分54秒

"never stop at the first working version"??? - when are you supposed to get the rest of your work done? :)

2018年09月27日31分54秒

I've attempted to be Aaron, sometimes it works, but sometimes I'm wrong. "Those who cannot learn from history are doomed to repeat it." It's good to keep our minds open to new ideas, but it's bad to listen a n00b over those who've already made the mistakes for you. Everyone needs some skepticism, as we learn from asking questions of ourselves and others.

1970年01月01日00分03秒

The problem is too many people think they are "Aaron"

2018年09月26日31分54秒

AND one of the best ways to learn what NOT to do :)

2018年09月26日31分54秒

You can see how they do something. Maybe they do it in a better way than you?

2018年09月26日31分54秒

I had to dig into a really old and completely undocumented project, document it, fix some bugs in it, and port it to a new system. I learned a lot, and not all of it was what not to do. Though I did learn the value of comments.

2018年09月27日31分54秒

And while you're writing the documentation, maybe write some unit test cases for it (if they don't exist). Then you'll also know how to use the code.

2018年09月26日31分54秒

So true, that was the hardest part of my job for a long time.

2018年09月27日31分54秒

The sad fact that a majority of people don't exercise or even stretch at all on any sort of regular basis is a huge problem in today's world.

2018年09月26日31分54秒

I'll extend this, if I may, to any amount of physical excursion. Sometimes, when I've not done much manual work for a while, I start to crave physical tiredness. It's kinda novel when you're so used to being mentally drained and it helps you break out when you're just thinking yourself round in circles.

1970年01月01日00分03秒

yes that's the big problem today. we don't have the time especially in pakistan where the working hours are lot more

2018年09月26日31分54秒

+1 as a reminder to myself to get more exercise.

2018年09月27日31分54秒

I find that a sport is a great motivator - for me, it is basketball.

2018年09月26日31分54秒

I agree. Getting my hands dirty in a project has been probably the biggest contributor to my improvement. ; )

2018年09月26日31分54秒

Exactly. The single best way to become a better coder is to code. You can learn all you want from books, podcasts and co-workers, but you have to apply it before you really understand it. Code more, and code more different stuff. Because you don't learn much from repeating the same old trick.

2018年09月27日31分54秒

Choosing challenging and intriguing projects to do. I think the struggle to overcome outside of your comfort zone really speeds up your skills. They didn't go to the moon because it was easy.

2018年09月27日31分54秒

I can vouch for that.

2018年09月27日31分54秒

An instructor at the university told me about the opening when I was still a student. I stayed for nearly a year (part time) after I graduated.

2018年09月26日31分54秒

As Douglas Adams writes in "Dirk Gentley's Holistic Detective Agency": "the best way is to try and explain it to someone else. That forces you to sort it out in your mind. And the more slow and dim-witted your pupil, the more you have to break things down into more and more simple ideas."

2018年09月27日31分54秒

Too True. Teaching photography made me a better photographer. Not much of a coder tho :(

2018年09月26日31分54秒

mutuo ista fiunt, et homines dum docent discunt - Seneca

2018年09月27日31分54秒

I can only agree; "pet project in a previously unknown language" is good, I can confirm

2018年09月27日31分54秒

Very good suggestion to learn something halfway familiar.

2018年09月27日31分54秒

Great suggestion "something you have experience with + something you don't "! Thanks

2018年09月27日31分54秒

I need a pet now.

2018年09月27日31分54秒

I gotta vote you up just for bringing back wonderful memories! Maybe I even teared up a little :)

2018年09月27日31分54秒

I still mentally translate C/C++ into 68K assembly language. It's amazing how that helps you write efficient code for any platform.

2018年09月27日31分54秒

Ah, the 6502, brings back great memories. I learned so much with assembler on this chip.

2018年09月26日31分54秒

EVERY student of programming should have in-depth exposure to assembler early in their education!

2018年09月27日31分54秒

I did the same thing as a youngster. It really taught how computers work, moreso than a high-level language ever can.

2018年09月26日31分54秒

I second that... I can hardly even read some of my old stuff.

2018年09月27日31分54秒

When I go over old stuff of mine I get nearly-irresistible urges to delete the whole file. Sometimes the whole directory.

2018年09月27日31分54秒

+1 for objectivity. Looking over your old code won't tell you how to improve, only if you've improved and how -- or conversely, if you haven't.

2018年09月27日31分54秒

I have done this--I wrote this whole script interpreter in VB6, I wrote it over two years; it could make windows, handle their events, etc. It grew so large and out of control that I could no longer add to it without breaking everything. That was the last thing I wrote before I gave up programming for books about programming. Now I am much better phew. Reading back on that monster project makes me realize just how far I've come

2018年09月27日31分54秒

Christopher Mahan: And on really bad occasions, the entire volume.

2018年09月26日31分54秒

Plus, frickin', 1. I was starting to wonder where this choice was.

2018年09月27日31分54秒

If you want to get better at something, there is nothing better than doing it.

2018年09月27日31分54秒

+1 -- This reminds me of Finding Forrester: "The first key to writing is... to write"

2018年09月26日31分54秒

There's no other answer. You can't really say you know what you're doing until you've written a non-trivial pile of code and stuck with it through a few product iterations with the business guys + the customers. You don't /really/ know how good your code is until it's time to make it change to meet new requirements.

2018年09月27日31分54秒

Definitely the best thing I did to improve my programming was getting a job.

2018年09月26日31分54秒

My guess is that the question implied "besides programming"...

2018年09月26日31分54秒

And he probably has less skill because some of his knowledge became obsolete..

2018年09月26日31分54秒

a mix of the two is actually what works best for me; reading other people's code and refactoring it to make it more readable is a great exercise

2018年09月26日31分54秒

Reading good code of course... and understanding it. And modifying it, or writing tests for it.

2018年09月27日31分54秒

Reading code is interessting, but it doesn't really get under your skin until you actually do it.

2018年09月27日31分54秒

You must DO it to learn it. It's like riding a bicycle...

2018年09月26日31分54秒

The only "experience" with pair programming I have are the times I have to help out fellow colleagues. I program much happier when there is another person there with me to discuss the problems I face and how I will solve them.

2018年09月26日31分54秒

Touch Typing is the most important skill. The greatest crimes in programming have been committed by those trying to save a few keystrokes.

2018年09月27日31分54秒

This beats all the other answers, in my opinion. Typing saves tons of time, which means you can spend more time entering code and trying it out. It means you can type in the examples in a book instead of just nodding your head, moving on, and forgetting. Trying to be a programmer with hunt-and-peck is like trying to be a concert pianist by tickling the ivories with your feet.

2018年09月27日31分54秒

I have seen people hit 15 up arrows to recover a 2 character command. Pretty sad. It's like some kids without an IDE... completely incompetent.

2018年09月27日31分54秒

To be contrary here, I never learned to touch type. I tried learning once, but immediately started getting pain in my wrists, resting them on the desk to assume the proper hand positions was putting pressure on the all-important carpal tunnel. So I figure my pick typing at least has some ergonomic advantages. And I've been doing it for so long, I only glance intermittently at the keyboard, so no real productivity loss. Most of my time is not spent entering chars anyway, it's spent reading code and figuring out how to best solve the problems as they come.

2018年09月27日31分54秒

The hand positions are not important - the important thing is that you can type without having to look. On my laptop I do not rest my wrists.

2018年09月26日31分54秒

True. You could test your (till now) final version by letting a bunch of people you know to be non-technical try it, and hear their comments on it (being sure to pick ones that won't say "It's good!", because this oviously doesn't help you in the slightest.)

2018年09月27日31分54秒

Yup, that was the big one for me too. Also significant were touch typing and pair programming.

2018年09月26日31分54秒

We all start writing crappy code. If you write enough and you work at it you will get better. Code reviews help, but the best way is to review your own code.

2018年09月27日31分54秒

Reading code and lots of it.

2018年09月27日31分54秒

Reading and writing lots of code... Open source is such a boon to us ;)

2018年09月27日31分54秒

Just did this four months ago when I started to teach myself perl! My ability to use vim and unix in general sky rocketed! Amazing.

2018年09月27日31分54秒

Regular expressions aren't just useful, they also get you to think in a different way.

2018年09月27日31分54秒

+1. Completely agree. I am surprised to make people surprised quite often doing quite basic things in vi, sed or grep.

2018年09月26日31分54秒

I find TopCoder a little problematic. OK, it makes you better at thinking about algorithms, but you are forced to work with bad style (all code in one class) and under time pressure, so you probably won't comment and test. Perhaps Project Euler is the better choice.

2018年09月26日31分54秒

You're not forced to work with bad style; you can have as many classes as you like. Also, you had better test if you want to pass consistently, since a solution that fails a single edge case gets zero points.

2018年09月26日31分54秒

hstoerr - not to mention the fact that competitors are rewarded for making their code difficult to read (their solution is harder to challenge)

2018年09月27日31分54秒

(sorry if this sounds offensive) I find people who don't like Topcoder (or other similar contests) try to invent reasons why doing them will make you a terrible programmer. Its ok if you don't like them. But making up spurious reasons is IMHO not helpful. No serious contestant at TC intentionally obfuscate code (it is actually grounds for disqualification if caught). I see lots of people who don't compete write bad code all the time. Algorithm contests do not aim to teach good coding habits (learn that from somewhere else), rather they aim to teach/develop something much deeper.

2018年09月27日31分54秒

TopCoder is way to show yourself how much better you could become.

2018年09月27日31分54秒

me too! (need some more chars...)

2018年09月27日31分54秒

If you would tell us why, this might even be an answer. ;-)

2018年09月27日31分54秒

Supporting project that was made with inhouse framework (based on EJB2) wasn't my idea of fun. No new stuff, just old crap. And perspective in new job aren't better. :(

2018年09月27日31分54秒

Been there, done that.

2018年09月27日31分54秒

+1 Good luck landing a job that isn't a dead end.

2018年09月26日31分54秒

+1 for mentioning books. A lot of experience is not worth much if it's all spent doing things the wrong way.

2018年09月27日31分54秒