|
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.
|
|
|
|
|
Forogar wrote: Perhaps but they could just as easily keep supporting Windows 7, probably with a lot less effort.
Not sure how supporting two different code streams is "a lot less effort" than supporting one.
Forogar wrote: Obviously it is "newer" but that doesn't necessarily mean "better"
I wasn't trying to make that argument.
|
|
|
|
|
Quote: Not sure how supporting two different code streams is "a lot less effort" than supporting one. Simple. Don't support two. Drop WInX altogether and just fix Win7 with all the latest improvements.
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
Forogar wrote: Simple. Don't support two. Drop WInX altogether and just fix Win7 with all the latest improvements.
Ok, you go ahead and try to convince Microsoft it needs to do that.
Jeez, I'm honestly trying to figure things out and suggest rational solutions that can work for people and this is the sort of childish discussion I get dragged into. Are you a Slashdot reject?
|
|
|
|
|
Quote: Are you a Slashdot reject? I have never been rejected by Slashdot... whatever that is!
This is meant to be a reasoned discussion which does not necessarily have to have any resemblance to actual reality. If you consider it a "childish discussion" and don't wish to take part then please feel free to not take any further part. I will not be offended in any way if you do not respond to my, or anyone else's, posts.
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
Yes, I do think that suggesting that Microsoft kill Windows 10 and go back to 7 can only be construed as childish.
|
|
|
|
|