4 ms·
There are so many things to know nowadays. Backend: Sql, NoSql, NewSql, etc. Middlware: Django, NodeJs, Spring, Groovy, RoR, Symfony, etc. Client: Angular, Emb
by kevindeasis 11y ago
There are so many things to know nowadays.
Backend: Sql, NoSql, NewSql, etc.
Middlware: Django, NodeJs, Spring, Groovy, RoR, Symfony, etc.
Client: Angular, Ember, React, Jquery, etc.
I haven't even mentioned hardware, security, servers/cloud, and api.
Now you also need to know about theory, UI/UX, git, deploying servers, HTTP, scrum, software development process, testing.
Then you have to keep up to date with all of the trends and know which framework to use in which scenario.
So, I wrote all of that in a minute. You can just imagine how frustrating it is to learn all of that and be expected not to look at any help or reference. You have to be crazy to have expectations that high in expecting programmers not to use stack overflow.
You burn soo much cognitive resource if you don't use stack overflow. Also, it helps you learn soo much faster. If I go to AWS there is so much jargon in that documentation, which could literally be explained in a simple sentence. Oh and guess what, that simple explanation is in Stack Overflow.
- BadassFractal 11y agoquestion: what do we do about this? Is this just how it's going to be? I wonder how much total programmer time was wasted re-learning how to do the same thing in a slightly differently flavored framework / language / pattern. Supposed we would have ended up with more overall productivity and stability in software had it not been for the endless iteration on the same old stuff.
- sago 11y ago> how much total programmer time was wasted re-learning I don't see it that way. I think once you've used a few frameworks and languages, you 'learn' the concepts, the patterns and the ideas. I've programmed professionally in more than a dozen languages, and a lot of frameworks/libraries/tools. 'Learning' a new one doesn't worry me, because I don't have to learn it. Tools like SO, used as use-case based documentation let me very quickly turn the concept into the syntax I need, and make it fairly easy for me to use a new tool. If I use that tool a lot, I get familiar with it, and don't have to look up as much, but the minutiae of a tool isn't what makes you productive, I don't think.
- sotojuan 11y ago> There are so many things to know nowadays. Honestly... not really. Unless you want to know everything out there. My college classmates are doing fine in their job search just knowing Java (no frameworks!) and SQL, just Python, even just one JavaScript framework, etc. Whatever else they need they'll learn in the job without much stress. I honestly think this "need" of knowing as many APIs as possible is exaggerated online, partly thanks to blog posts or tweets of senior devs saying "X is this new good thing, Y is old and bad!" (which seem to be a weekly occurrence) and perhaps start ups since they don't have time to mentor because they have to grow ASAP. That works fine for them, but don't think it applies to every company. Seriously, take some time off the internet and you'll quickly stop caring. Unless you enjoy learning so many new things!
- rplst8 11y agoI hate to break it to you, but knowing "just this and this..." won't get you very far when the thing you know is no longer popular, becomes infrequently used, or worse, is no longer supported. It also doesn't help you if you want to branch out into things that Java/SQL/JS/Python don't really support that well. It also won't help you if you switch focus mid-career, which people often do, from say web development to embedded systems. No one sane is claiming that every programmer needs to know as many APIs as possible, but knowing they exist and being able to quickly find information on them is probably a requirement as you progress in your career. SO is a good place to spin up on things IMO. Is it the best way? I don't know - but it's helped me out a lot, and not for the purposes of cutting and pasting code snippets. It has literally helped me learn, syntax, paradigms, etc. in languages I use infrequently.
- forgetsusername 11y ago>My college classmates are doing fine in their job search So they're fresh out of college with nil professional experience and very little life-experience? Pretty presumptuous for them to be passing on advice to "senior devs".
- ehnto 11y agoI got a job because I knew Java, I have worked in the industry for just 8 years. I have had to learn PHP, Ruby, Javascript, Python, CSS, LESS, SASS, Angluar, React, Zend, Magento, Wordpress (begrudgingly), OpenCart, ZendCart, Prestashop, MySQL, Postgres, NoSQL, Redis, Memcached, PHPUnit, TDD, UDD, Agile, SCRUM, half a dozen variations on the agile process, Laravel, CakePHP, CodeIgnitor and probably many more that just aren't popping into my head right now. Then a bunch of different programming paradigms mixed in with that. The reason? It is very rare that anyone works on one, pristinely maintained product small enough to be encapsulated in just a few technologies, for their entire career. If you're at an agency, you're working with whatever the client walks in the door with, unless you can convince them to do a rewrite in your tools of choice. The work will be varied in quality, scope and complexity. Old or new, the technology stack is probably a mix match of whatever the architect thought was right at the time, and then whatever the subsequent senior devs from each new agency the project has been at decides should replace it (or more likely, some of it) If you're not at an agency, you could be at a startup. They're notorious for trendsetting technologies, but not many startups stick around and those that last probably move through a few iterations of their technology stack on their journey to a stable product. If you're a cog in one of the tech behemoths, you probably have the best bet of staying with one stack. But not even they stand still on technology, and whilst you might be writing in the same language, you will have to interface with the different technologies popping in and out of existence around you. The reason so many frameworks and technologies come and go isn't just because new things show up and people like shiny things, but old things often stop being maintained. Especially in open source. They don't make it, and so you can't use them anymore. That's why people were so angry that Angular is getting a rewrite. It's a javascript framework that was supposed to have longevity, because it was backed by Google. People could build companies upon it and know that it wouldn't change, and they did. Then Angular pulled the rug from underneath them, and there are now codebases made completely redundant and unable to move forward on the back of Angular without rewriting in the new Angular. But they can't even do that, because the new Angular wasn't out yet, but their stuff is already defunct. So they move to the new hotness. React sounds pretty cool right? Let's hope that lasts. TL:DR; The real world is messy, you will tumble out of the software development pipeline with SQL tech in your hair, Unit Tests under your nails and the dust of the many fallen JS frameworks in your eyes.
- codingdave 11y agoThere have always been references... it just used to be books. O'Reilly publishing provided a mini-library on most coder's desks. There is nothing wrong with looking at reference materials. The only problem comes when you use it as a crutch, and never actually learn. I like to think that most people use it productively.
- mtbcoder 11y agoAs you progress as a programmer you develop a keen sense on when to tune out things. For instance, using your list, knowing SQL thoroughly is far more valuable than whatever the "in thing" in NoSQL is these days. Furthermore, knowing a mature, well-supported framework like Spring, Django, etc is far more valuable than whatever the most fashionable, alpha-version framework is right now on HN. Sometimes it helps to put the HN glasses down, step back for a moment and take a breather.
- pjmlp 11y agoSoftware Engineering and CS degrees are quite good to learn to learn. When one grasps that is all about Algorithms + Data Structures, it is easier to abstract over specific languages and libraries. Personally I think the major drive to Stack Overflow is bad documentation. Many projects have lousy documentation, so one needs to build the documentation from experience and reading source code. The answers in Stack Overflow reflect that experience that has not been put in documentation. Up to the early 2000's it was enough to have a pile of books with the project tech being used.
- hocuspocus 11y ago> Many projects have lousy documentation, so one needs to build the documentation from experience and reading source code. This... seeing ElasticSearch in the trending terms is a good example.
- luhn 11y agoHeartily agree with this. I used ElasticSearch on a project a month or so ago with high expectations from the buzz about it on the internet. What I got instead was hours of scouring ill-written and terse documentation and a nested JSON query 12 layers deep. I complained about this to a friend and he suggested writing my own full-text search using Redis... I'll take Elasticsearch.
- oneJob 11y agoSo, thanks for bringing to my attention this NewSQL thing. I work in Baltimore and do my best to keep up, but it's a dessert out here. While I've been shopping around for a new gig, I've had to explain what data science is, even to my contract company recruiter contacts, who claim to work at a tech centric company. They'll think I'm making words up if I bring up NewSQL.
- pjc50 11y agoBackend: Sql, NoSql, NewSql, etc. Middlware: Django, NodeJs, Spring, Groovy, RoR, Symfony, etc. Client: Angular, Ember, React, Jquery, etc. Hmm. I use none of those, being in embedded + MFC land. But I very much agree with googling API documentation and searching for examples. Google is faster than the local F1 search in Visual Studio.
- robotkilla 11y agoI'm glad to see that people are generally in acceptance of the notion that there is a lot to keep up with if you want to survive, and that using references is a good thing. I believe its good to be a specialist as well. I've been using the docs since I started on qbasic, and I learned theory through the years through building websites and keeping up with the latest trends (and it turned out most of the theory is how I understood code to begin with). Stack overflow is awesome because its accessible and useful to everyone, and I don't think there's a danger that people would just fake it until they make it with SO - that's nearly impossible. I rely on it at times for best practice concepts since I work alone and don't have real people to talk to.