Ask HN: Does modern software development require too much knowledge?
New developers need to know SO MUCH stuff that I wonder how its possible to get anything done without four years intensive learning and practical experience under your belt.
10 comments
If you're having fun, seeing the possibilities instead of limitations, eager to experiment and learn, then you won't even notice. Find what you can do, do it well, learn how you can do it better, and it will all come into place.
I've heard it said that software development knowledge has a half-life of 3 years. That means you'll forget half of what you learned 3 years ago. That means half of the stacks that are relevant today are going to be gone in 3 years. What doesn't leave is your ability to learn, how you do things, your approach to problems and your priority.
Keep dreaming and visualizing what you want to create. You may not see how what you're doing today is ever going to materialize into something, but at some point everything will click and you'll be building what you want.
I've heard it said that software development knowledge has a half-life of 3 years. That means you'll forget half of what you learned 3 years ago. That means half of the stacks that are relevant today are going to be gone in 3 years. What doesn't leave is your ability to learn, how you do things, your approach to problems and your priority.
Keep dreaming and visualizing what you want to create. You may not see how what you're doing today is ever going to materialize into something, but at some point everything will click and you'll be building what you want.
Actually I think starting with programming is easier than ever. When I started programming there was no Google, no stackoverflow.com, there weren't even decent IDE's.
Modern languages like C# or Python are powerful and easy to learn.
For JavaScript you just need a text editor and a browser. But then, I think that JavaScript is not that suitable for a beginner because It has some nasty gotcha's and it fails easily without an error.
But it is true, the learning never stops, there are always new tools to discover.
Modern languages like C# or Python are powerful and easy to learn.
For JavaScript you just need a text editor and a browser. But then, I think that JavaScript is not that suitable for a beginner because It has some nasty gotcha's and it fails easily without an error.
But it is true, the learning never stops, there are always new tools to discover.
Software development requires continuous learning it may be new technology/language methodology or a complete new platform so Why only 4 Years , In my opinion as software developer you are a student always, you need to continuously increase your knowledge and its practical implementation; technology comes and goes so you need to be adaptive.Yes it always takes some practice experience to build something valuable but you can always start with something very little and working and then build as you improve your knowledge and skills. So be open minded learn something new every day and build valuable things.
You don't start off having to know everything.
You start off picking off small problems that don't require deep knowledge of an entire stack.
Then you have to know everything: there's no question a full-stack dev has to know a stupid amount of stuff. I've drawn a line at all but the basics of devops; it's not something I'm interested in, and even though it's important, it won't be where I focus much attention.
You start off picking off small problems that don't require deep knowledge of an entire stack.
Then you have to know everything: there's no question a full-stack dev has to know a stupid amount of stuff. I've drawn a line at all but the basics of devops; it's not something I'm interested in, and even though it's important, it won't be where I focus much attention.
I think development of software will continue to get "easier" as languages, technologies and ideas evolve. I think over time these technologies will get to the stage where you barely have to think about the technology in use, and rather just focus on the problem at hand/what you want to build; this really is currently the case only after years (or decades) of experience and purposeful practice.
The current development of software does require a lot of knowledge to break into the market; however this also means that software development is a skilled profession which leads to higher than average salaries.
I would also add that we are seeing people enter the software/web dev market without a 4 year degree. A lot of people that I know have done 2 year diplomas and even compressed 4 month "bootcamp" style programs
The current development of software does require a lot of knowledge to break into the market; however this also means that software development is a skilled profession which leads to higher than average salaries.
I would also add that we are seeing people enter the software/web dev market without a 4 year degree. A lot of people that I know have done 2 year diplomas and even compressed 4 month "bootcamp" style programs
It is true that to succeed the modern developer requires an enormous skillset. At the same time, everything is so accessible because of places like Github, IRC channels. There are a wealth of tutorials covering every topic imaginable, sites like StackOverflow giving you the opportunity to have your problems solved, and a community of developers who truly want to help fellow developers.
Because everything changes so fast in software, in the developer DNA must be built in the ability to master new concepts and apply them very quickly. You build a solid foundation and can apply it everywhere. Additionally, in software development, you reinforce the skills that are important because you use them. You learn as you go and must always be learning.
And for some perspective, think about how relatively easy it is to become a developer vs. getting a PhD.
Because everything changes so fast in software, in the developer DNA must be built in the ability to master new concepts and apply them very quickly. You build a solid foundation and can apply it everywhere. Additionally, in software development, you reinforce the skills that are important because you use them. You learn as you go and must always be learning.
And for some perspective, think about how relatively easy it is to become a developer vs. getting a PhD.
Absolutely.
It especially hits when you try to teach someone new how to do something. It is terrifically easy to open notepad and show them how to make a <p> tag, but the curve then climbs quickly. Stuff that I take for granted I didn't really realize until I was teaching someone—I had to introduce them to browser's developer tools, what caching is, and hey what are these status codes anyway, etc. On top of that, deployment seems harder these days for new folks.
I actually have high hopes for Meteor JS simplifying some of this. Thus far I've noticed that people really like being able to do "create" and "deploy" and have a working URL they can share with a friend.
It especially hits when you try to teach someone new how to do something. It is terrifically easy to open notepad and show them how to make a <p> tag, but the curve then climbs quickly. Stuff that I take for granted I didn't really realize until I was teaching someone—I had to introduce them to browser's developer tools, what caching is, and hey what are these status codes anyway, etc. On top of that, deployment seems harder these days for new folks.
I actually have high hopes for Meteor JS simplifying some of this. Thus far I've noticed that people really like being able to do "create" and "deploy" and have a working URL they can share with a friend.
You can keep your software development workflow simple. Example: You could do a website using Html5, CSS3 and Old-school Javscript or you could use all the tools like grunt, bower, CoffeeScript, SASS (or LESS) etc... It depends on the level of engineering you want to put into your project.
> four years intensive learning and practical experience under your belt.
You're not even finished after four years. In fact, you're merely starting.
You're not even finished after four years. In fact, you're merely starting.