14
votes
Any resources exploring the gap between beginner and top 5% expert in various tech fields?
I am looking for any resource that could tell me how much knowledge and training is needed to go from a beginner to expert, in let's say application software development for example. Or in artificial intelligence.
If there isn't any one source, are there any general type of sources I can use to piece together one mega-source?
I would check out this website http://www.techladder.io/. It was recently made on https://dev.to/ for Hacktoberfest and walks you through from 5% to expert. It's on GitHub, and while only 3 topics are public on the site 16 are WIP on github
Is there any easy place to track the WIP ones? For example say I wanted to contribute to the Java one, where could I find it besides manually going through all the forks?
https://github.com/remojansen/TechLadderIO in the
technologies/
folderI seem to be having trouble loading the site, but from your description this sounds like a good start.
Hmm... that's odd. Here's the direct link to the GitHub. https://github.com/remojansen/TechLadderIO
The site works now, it seems it was a problem on my end. But again thank you for the resource!
If I am reading this question right, this would probably be better asked in ~tech or actually even ~comp, given the highly technical nature of the fields that you're asking about... especially since I imagine a decent amount of people who are subbed to those groups and can answer this question may have unsubbed from ~talk because of its casual nature. If you want me to I can move it there for you, @Wolf. So just let me know. :)
Would you move it there? Thanks!
Sure thing. Done. Hopefully you get a bit better response in ~comp than ~talk.
Hopefully. I really want to create a pathway for myself and others.
Yeah, it's a pretty interesting but probably quite tough to answer question, IMO... and I certainly don't feel nearly qualified enough to even try. Hopefully someone else who sees this does though. :)
This is an incredibly abstract concept to try to quantify. I don't think you're going to find anything more than perhaps some literature touching upon the subject without an actual scientific backing. If you want some food for thought, however, here's a paper written in 1980 on the subject of a model for skill acquisition. This could be a good starting place for your research into the subject at large :)
Edit: Here is a much better version, which goes into greater detail and isn't so obviously from 1980.
I wasn't really looking to quantify skills so much as find a syllabus of sorts to get from beginner to expert. I hope that clears things up. I will check out the paper.
Ah, gotcha. In that case, you're going to have an even more difficult time finding a solid answer. If we go the syllabus route, the only thing you're actually going to get is a measure of a base level of competence with the fundamentals. There are far too many things that you simply won't learn by checking another box on a list of things to learn, unless your goal is to become an expert with a set of very specific technologies. Ultimately general expertise in an area of tech (and really any field, for that matter) is something that comes with first-hand experience and lots of practice.
If you want a checklist of basics, then great, we can get started with a pretty good list pretty easily. But there's just no way to become an expert without breaking away from that list.
I did have fears that I wouldn't get much on general expertise, just because of the nature of general expertise.
Why don't we get started with basics? Do you think there's enough information on the various fields in tech? I think @meghan has a good start.
Alright, here's a quick syllabus for programming:
Intro
int
andfloat
.&
instead of&&
).Basics
private
vs.public
properties/methods, comparing objects.Intermediate
Advanced
Most people are fine after the
Intermediate
section. That's enough to give you a pretty solid foundation and make you a fairly decent intro level programmer. TheAdvanced
section, however, is highly recommended for anyone. Understanding how your operating system works in particular can help you unearth the root cause of a problem with some tool that's malfunctioning. Even the largely academic parts like auto-balancing tree data structures still help to provide valuable insights into different approaches and tools that are available for solving problems you may end up running into.I've likely missed some pretty important topics here. I may have even miss-categorized some of them. I've kept subjects of purely academic value down to a minimum. I've tried to avoid domain-specific subjects as much as possible (e.g. nothing specific to web programming). More than anything, I highly doubt there will be universal agreement with this list overall. This is based largely on my own personal experiences as both an academic and as a professional and is thus subject to bias. Still, I feel that it gives a fairly powerful set of fundamental subjects that a programmer can make use of in a variety of situations and that the skills you develop learning these subjects are the most transferable between programming languages and problem spaces.
If anyone has any feedback on this list, I'll be sure to hear you out and make any changes where appropriate.
@Emerald_Knight have you seen https://tls.ulfheim.net/ ?
Nice resource! I really wish I'd had this when I first had to learn about SSL/TLS a couple years ago. Perhaps a bit more verbose than is needed for grasping the basic mechanics, but perfect for ironing out the details :)
This was way more than I expected, but holy crap thanks! With this and what @meghan posted, I already have a solid path.
No problem! I'm glad that you find it helpful :)
Oh, absolutely. There's more than enough information for any given field in tech for gaining a base level of competence.
Personally, I believe that meghan's resource works more for gaining that base level of competence for a specific programming technology (and right now there are only a few languages listed). If you want a general syllabus for gaining competence in programming specifically beyond simply competence in a given language, I'll look into writing something up when I have a little more time :)
You could look at curriculum's duration, and add a few years of experience on top of that. For example for machine learning you need a master or some sort, a PhD in the field or a few years of work, so about 10 years, for baker you need 2-3 years of studies + a few years of work, etc.