3 ms·
I suspect a lot of 21-year-old CS grads think they’re great programmers. And a lot of 25-year old professionals with 4 years of experience in the software indu
by Chris_Newton 11y ago
I suspect a lot of 21-year-old CS grads think they’re great programmers.
And a lot of 25-year old professionals with 4 years of experience in the software industry wonder what they were thinking at 21, now that they know how you really build software.
And a lot of 30+ year-old professionals wonder how a 25-year-old who had so little experience after working on just one or two different projects for only a couple of years each could possibly have believed they were such an expert.
I wonder what 50-year-old me will one day think of 30-year-old me. I have concluded that I will probably think I was ignorant and naïve back then, and that this feeling that everything you did a long time ago was terrible is called being alive. :-)
- copperx 11y agoAnd you will wonder why at 50, with all your experience, you are now unemployable.
- Chris_Newton 11y agoI haven’t been anyone’s employee for a long time, but that had relatively little to do with technical skill and much more to do with wanting a broader role in the whole “build something useful” process as my experience developed and I became more aware of the non-programming aspects of that process.
- RogerL 11y agoI'm close to that age, and try to always be growing and improving. I don't look back at 30yo me with disdain. I do find all of normal programmming pretty mundane and cookie cutter. Design this way or that way, pick your trade offs, investigate gotchas, think about what this code will be like in 10 years (most stuff I write has a long life, I don't do web stuff), trade off robust design with get it out the door, and so on. No biggie. I get my challenges now with new domains - computer vision, computation, math, etc - stuff that requires reading research papers. It's fun. There is always a universe of things you won't know, you just need the humility to understand that, and I think by 30 or so most of us figure that out. If you don't you are pretty bull headed, as the compiler will tell you 1,000 times a day that you don't really know something if you don't. Most people get the clue after awhile ;)
- fragmede 11y ago> (most stuff I write has a long life, Facebook is 11 years old now; Google is 17, and I'd bet there's a line of code somewhere in both of them somewhere there that hasn't been touched in 10 years. > I don't do web stuff) Feel free to pigeonhole yourself like that, but I've learned not to overlook large swaths of industry because it's not 'serious'. Reading research papers? Both Google and Facebook have been writing research papers in many areas, including Computer Vision. As you point out, you need humility to take the time to understand what's come before you, but you also need the hubris to say "we can do better". In the case of FaceNet (Google) or DeepFace (Facebook), much better than state of the art a few years ago.
- greenyoda 11y ago"Feel free to pigeonhole yourself like that, but I've learned not to overlook large swaths of industry because it's not 'serious'." He never said that web programming wasn't serious. He just said he doesn't do work in that area. I'm sure there are lots of areas of computing that the average web programmer "doesn't do" either, like kernel hacking or embedded systems or computer vision. "Reading research papers? Both Google and Facebook have been writing research papers in many areas, including Computer Vision." I'm not sure what your point is. Reading research papers is how you learn what's the state of the art in any field of research (ask any PhD student). If computer vision is a new domain for him, he has to begin by reading, not writing. Even the people who write research papers read many more papers than they write.
- mikekchar 11y agoI don't have any examples of code I wrote when I was in my early 20s, but definitely I'm sure I was quite naive. Especially if you consider development process, I had absolutely no idea what it took to build successful teams. At around 30 I started to clue in and I can recall some designs which were actually not too bad in retrospect. Of course, a lot of the stuff that is taken for granted now (design patterns, TDD, etc) was not well known at that time and so I was exploring and learning things that few other people had experience with. As another person posted, I'm also nearing 50. I would say that my code has improved a fair amount and I have learned a lot of other techniques which I didn't really know in my 30s (like FP). Rather than technique, though, I think the biggest thing I've learned is patience. I code very slowly compared to how I coded 20 years ago, but I think a lot more about every line. Kent Beck once said that when he wrote Smalltalk Best Practices that he started to evaluate every keystroke and to think why he was pressing that key. I find that I am doing that a lot now and it is very beneficial. The advice I give the young guys on the team the most is, "Stop typing so fast! You need to think about what you are typing" :-) As I said, the biggest revelations for me are less about pure technique and more about how everything fits together. For example, my less experienced colleagues are often distraught over the perceived sins of the other people on the team. They worry endlessly about how to stop the "crappy programmers" (in their eyes) from "ruining" the code base. Nearly 50 year old me weighs the options and realizes that complaining/campaigning/scheming/negotiating/etc will take an order of magnitude more time than refactoring and will suck the fun out of the room. I like refactoring code and I hate arguing, and besides young people tend to be crap at cleaning (in general). So I clean things and eventually most of the others catch on -- not everybody, but it's enough. I still get stressed out a lot and I'm hoping by the time I hit 60 I will have resolved those issues :-)