|
I was thinking about this very thing when I was reminded that a younger member of my team said that anyone over 54 is incapable of learning new things. So whether or not I'm a good developer, seeing that I'm an old developer now, it's irrelevant - I'm destined to become soylent green.
Tate Antrim
All around nice guy!
|
|
|
|
|
Tate Antrim wrote: I was thinking about this very thing when I was reminded that a younger member of my team said that anyone over 54 is incapable of learning new things. So whether or not I'm a good developer, seeing that I'm an old developer now, it's irrelevant - I'm destined to become soylent green.
Glad you didn't listen to the young smart-ass. Glad I didn't either. I'm about to turn 59 myself, I haven't figured out how to stop learning yet.
If you think hiring a professional is expensive wait until you hire an amateur! - Red Adair.
|
|
|
|
|
I've never considered myself a great developer. Even when I left a big company to start my own, where I was supposed to be the Dev-Guy. But I knew I was capable enough. More importantly, I was willing to do the following:
1. Listen to and really understand the needs of my clients.
2. Focus on how to make the UI work most efficiently for the end user.
3. Research to figure out an (not the!) appropriate technology for the solution.
4. Learn whatever is needed to use this technology - even if this is a completely new framework.
5. Work my backside off to get the solution implemented well.
6. Iterate as many times as required on #2 until it was right.
Personally, I think I am a rockstar at #2 and #5. But a great developer - no.
Leaning on the shoulders of giants, and following these steps, we almost always got the job done - for desktop, web, embedded, and hardware projects. And having been in business for over a decade, I guess we have done a few things right. Most importantly, now when I hire, I look for those who are always willing to work hard, learn, and improve.
modified 5-Dec-16 12:44pm.
|
|
|
|
|
I can count on one hand how many great developers I have worked with in my long career of 44 years (42 in the corporate environments).
I have lost count as to how many people I have worked with who thought they were great developers but in my view weren't. One such developer actually came over to my cubicle one day and stood there for around 20 minutes telling me how great he was as a trading developer.
Though I have been considered during my career to be a "super programmer", I just saw myself as someone who was very good at getting a job done with professional quality (or at least as much as my technical management would allow).
Many developers today seem to feel that they are good if they know all about DevOps and Agile, have worked in such environments, and have gained a knowledge of all the latest tools.
The problem is that all of this does not make a great developer or even a good one. I have worked with such people and have found them to be mostly meh... Yes, they could put an application together and quote the latest technical jargon. And they could one-up themselves quite well. However, could they get a professional quality job completed with coding that was very easy to read and understand. No.
One fellow I worked with who claimed to be highly knowledgeable couldn't understand one of my application's code-bases when it was left to him when I went on vacation.
My source-code was in fact very straight-forward and eschewed all the latest techniques in OOP programming. The application simply didn't call for it. Unfortunately, this poor guy couldn't understand the code without it being completely object-oriented including inheritance (which is a time-bomb simply waiting to go off if it is not implemented properly).
None of us are really great developers since quality code can come in many different varieties, all of which fulfills the requirements it was designed against. This is not a competition, though many make it appear to be.
What makes you "good" is if you can get a variety of tasks done with professional quality within a reasonable time period. DevOps, Agile, and the latest tools, practically all of which merely reinvent existing wheels that already work quite well, are nothing but distractions.
Besides, no one can keep up with all of this hype that is being promoted all over the industry.
I don't use ASP.NET MVC, JavaScript frameworks, fancy CSS, WPF MVVM, or database ORMs. All of it is just doing the same things that were already defined with earlier technologies that still work exceptionally well. Nonetheless, I can still produce a quality application that no one will ever have to complain about, which is exactly what a user wants since they really don't care about all your tools, design patterns, and whatnot. They just want your product to work and work well.
If you do that you are doing just fine...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
Excellent post, Steve. My thoughts exactly. I've been at this for 40 years, myself.
|
|
|
|
|
Thank you for your appreciation of my comments.
Its good to see that there are still plenty of people who think they way I do towards all the latest product hype...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
When my app generates me the winning lottery number, I will know that I am a great developer.
And I won't have to write another line of code.
|
|
|
|
|
It really doesn't matter. The current administration has doubled the number of H1B's again. you will soon be an unemployed or underpaid developer .
|
|
|
|
|
If you're delivering good quality software solutions to business problems in a timely and budget friendly manner, then you are probably a good developer. That said - how do you become a great developer?
First - develop your communication skills, both written and verbal. If you can't articulate your questions about the problems at hand, in a manner non-peers (or even peers in software development, for that matter) can understand, you're going to have a tough time delivering solutions. Furthermore, people will question your ability to deliver those solutions, if you can't speak about them in an intelligent and clear manner. So cultivate and nurture your speaking and writing skills. Also, for both, a bit of advice: Think before you speak. Pause, think about your answer or question, then communicate it. Don't just blurt out the first thing that comes to your mind as quickly as possible - some people won't understand it, and in many cases, it will be the wrong thing to say.
Second - develop your skills in understanding the business you are creating solutions for. If you don't understand the business, how will you know if the solution is correct for the problem? Furthermore, how will you know if the solution fits the problem at all, or whether there is a more holistic solution at hand - if you don't understand how the parts of the business fit together. Remember, sometimes the best solution to a problem involves the least amount of code. Also, more code means more stuff to break. Always look to simplify the problems and solutions.
Third - simple code is better code. It may not be sexy, it may not show "the world" your coding prowess, but it will be maintainable - both by future you, and other programmers who come after you leave. Strive to make your solutions as simple, and to the point as possible. Your goal should be writing less code. Your goal should also be to refactor old code to use less code (assuming you understand why the old code does what it does - which may or may not always be clear - don't ever remove or change code unless you know exactly what it was originally doing).
Fourth - don't get hung up frameworks or technologies. If you want to stay marketable, stay flexible: Strive to understand the common principles that underlie those frameworks and technologies. In many cases, most of them are reinventing the wheel - sometimes because of the famous "not invented here" syndrome. Don't succumb to the allure of that syndrome, either (at least with an employer - do what you want on your own time): In many cases, your solution will end up being worse than existing solutions, performing more poorly and doing less. Instead, seek solutions that already exist, and try to extend them, or build on top of them.
Fifth - "Good programmers write good code; great programmers steal great code." Learn it, understand it, and live it. Furthermore - always give credit where credit it due. I'm not saying all answers are found on Stack Overflow, but you need to know how to frame a question when searching for an answer, and how to look at those answers you do find in order to understand whether they are valid and can work in your situation - or can be made to work. Cut and paste won't get you very far before it bites you, but sometimes the answer to a difficult problem can be found online with proper searching, understanding the problem, and knowing how to fit the answer pieces together into a final working solution.
Ultimately, never rest on your laurels - keep striving to improve your knowledge. Ideally, study old solutions (for instance, in the field of machine learning, you wouldn't believe how many algorithms and other solutions are based on things created or discovered 40-50 years ago). Never fear to venture outside of your comfort zone - if something seems too difficult to learn, then it is probably the one thing you should try to learn. Pushing yourself on new skills is what will really set your knowledge and imagination free.
Finally - don't be afraid to fail. When you do, pick yourself back up, reassess the situation, and give it another go.
|
|
|
|
|
I had thought about this question for myself a few years back. I, specifically, like the answer by Jon Mckee. Looking at the technology landscape 15 years back and now, there has been so much of change and the way it has evolved. Its practically impossible for any developer to keep up with a lot of these new technologies. And, unfortunately, a lot of companies that use these technologies are run by people who know how to do business & make money very well, but not really much about these technologies. Hence, comes the trend of picking up the popular technology in the market and using it for their requirement. Its a really complex world to be wondering about these things or summarize them in a paragraph for that matter.
My two cents is that one should be really focusing on things that really matter like basics, algorithms, design patterns, cryptography, understanding framework's underlying code. I think a lot of developers out there today learn technology without understanding the underlying concepts & intricacies. For example, there is lot of market for AngularJS, but it is built on JavaScript and how many out there actually bother about understanding it? Its might be easier and quicker to code in Angular but incomplete knowledge will introduce a lot of bugs and problem in the deliverable at later point of time. Developers are being judged based on a race between what is needed and how quickly it can be delivered. The moment one tends to learn these technologies for the sake of keeping up with the race, the developer in them is on the way to a dead end. New technologies and frameworks are going to evolve and get released faster than ever.
|
|
|
|
|
Simple:
According to the Dunning Kruger effect ( Dunning–Kruger effect - Wikipedia[^] ) if you question your depth of knowledge, you are more likely to be good at something.
People who don't know enough to know what they don't know - are usually overconfident.
Conversely - talented people tend to question themselves more - because they know they don't know it all.
|
|
|
|
|
No matter how much you push the envelope...
...it'll still be stationery.
Bonus:
Let's eat, mom.
Let's eat mom.
------------------
Punctuation saves lives!
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
|
Brisingr Aerowing wrote: Punctuation saves lives! ..is a joy forever
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
And I had Leslie yell at me when I posted this joke a month ago. The Lounge[^]
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
|
|
How endearing!
Marc
|
|
|
|
|
Doe!
/ravi
|
|
|
|
|
This may be a little late but now that it has been out in the wild, rampaging around and causing untold damage and misery, why would anyone downgrade to Windows 10 from Windows 7? (I can see why for Win8 to WinX, but not from Win7).
I am looking for good, solid reasons; not just "it's better" or "it's better on tablets" or "it's got a cooler UI" - none of which are, in my opinion, even a little bit true.
These need to be reasons that couldn't have been implemented with a quick update to Windows 7.
Anyone?
...and don't give any of that bull about it being more stable, because it clearly is actually less stable!
...and I don't care that it starts up faster. I rarely have to restart Windows 7; it runs for months on my desktops and laptops (with no hibernation/wake-up problems, ever).
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
I do not have Win 10, and do not want Win 10, but there is one and only one reason why I will (eventually) upgrade to Win 10: As a life-long gamer, the day will come when I will want DirectX 12.
edited to add: Unless Vulkan significantly increases its capabilities in the short-term.
modified 2-Dec-16 15:05pm.
|
|
|
|
|
Vulkan capabilities are more or less the same as DirectX 12. Game developers decided to stick with DirectX because of historical reasons and fear.
|
|
|
|
|
I was referring more to the engines out there. The ones that do have Vulkan support are generally only at DirectX 11 feature parity right now.
|
|
|
|
|
It'll be supported long after Microsoft has abandoned 7.
</thread>
(seriously, that's about the only thing I can come up with right now)
|
|
|
|
|
Perhaps but they could just as easily keep supporting Windows 7, probably with a lot less effort.
Obviously it is "newer" but that doesn't necessarily mean "better" - in this case it certainly doesn't!
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|