5 ms·
Something missed in this article is the need to reflect and have personal retrospectives. Back when you first learned to code, you may have chosen names for yo
by tieTYT 13y ago
Something missed in this article is the need to reflect and have personal retrospectives. Back when you first learned to code, you may have chosen names for your variables like `foo` and `bar`. This was fine when you're learning how an if statement or a for loop works. But once your program gets a little more complex it's hard to keep track of what `foo` or `bar` represent.
I notice a lot of people who run into these types of problems and consider it to be just the way things are. This makes your productivity plateau. But, the reflective programmer notices the meta problem and asks, "How can I make this easier to think about?" In this specific example, the answer is to give the variable a meaningful name. I think you've gotta be reflective to learn this lesson. You can be taught and you can be told why you should do it, but it won't click very well until you feel the pain and the satisfaction of solving the problem.
---
New cynical topic: The real way to become a better developer is to be passionate about development. Everything else will fall into place. I'm not sure that this can be taught. I've seen a lot of people with the attitude of, "even if I'm more productive, I still have to work an 8 hr day so what's the point?" These developers (which in my experience is the majority of them) won't improve because they don't want to. But for me, maintainable code is its own reward.
- poulsbohemian 13y ago>> the need to reflect and have personal retrospectives +1 can't say enough good about this point. True not only of being a good software developer, but really anything meaningful we do in life.
- auggierose 13y agoI can understand this attitude, working for other people is pretty boring. The best developers work for themselves.
- tieTYT 13y agoI don't think I agree with this statement. 1. I think you can get some pretty interesting assignments even if you work for someone else. 2. I've worked with developers that work for themselves (contracts/consultants) who write code that's difficult to maintain.
- lazerwalker 13y agoThat's my personal opinion as well (that working for other people is generally boring), but I don't think it follows for all developers (or all of "the best developers"). What I do think is true is that the best developers you read about online tend to work for themselves. But there's selection bias there: succeeding as an independent (whether as a consultant or building your own product) tends to require a keen sense of self-marketing, and on top of that having online communities to connect with (HN, OSS, etc) is especially appealing when you don't have coworkers in the same office as you to shoot the shit with.
- stephenbez 13y agoI disagree. When you work for a company, you get to handle challenges that only come at a certain scale. For example, working just by yourself, you are unlikely to deal with huge distributed systems, or scaling an application to millions of users. Getting good feedback is critical to improving as a developer. I've learned so much by working with others and picking up on stuff they have done.
- CraigJPerry 13y ago>> For example, working just by yourself, you are unlikely to deal with huge distributed systems, or scaling an application to millions of users. Why not though? When companies run into these problems, they have to get the services somewhere. Why not a small development company? Plenty of one man bands doing crazy interesting work for surprising big names. And invoicing £800+VAT per day for it!
- GrinningFool 13y agoI suspect he doesn't mean literally "working for yourself". Or by yourself, for that matter - but rather, do the work and seek improvement because you enjoy the doing of it. And on that I have to agree. It's the difference between a seat-warmer and person who will improve throughout his career.
- abrahamepton 13y agoThis is just silly. Not everyone wants to be self-employed or work at a startup, and that doesn't make them not potentially a "best developer". I just wanna code, I don't want to deal with administrivia. I've worked at large companies that get out of my way and let me do the parts I'm good at, I don't have to worry about billing or anything.
- ShawnMcCool 13y agoWorking for yourself requires a lot of sacrifice and a desire to handle all things for yourself. This is not some admirable goal. Rather, it's an option for people whom it fits. I work for myself and I definitely don't recommend it for anyone who wouldn't refuse my advice to work a solid salary job. =)
- auggierose 13y agoIt is funny how everyone immediately jumps to the conclusion that I am talking about self-employment. What I mean: you are best when you code the stuff you code for your own (non-monetary) purposes. That includes being employed by Google and work on massive scalability issues, because scalability is an issue you are just dying to learn more about.