January 10, 2016 at 11:53 pm
I think 100 hours would surely put you beyond a complete newbie in something. The problem I faced when learning Python in the past 3 years is retention of knowledge.
Anyone who has used Python knows it's pretty simple in syntax. If you programmed or scripted in other languages, it's not to hard to jump into. The issue with retention is just based on usage. Learning something for 100 hours and never using it for weeks or months on end is often forgotten in my brain sometimes.
So, I feel regardless of any amount of hours in usage, the real key is just consistency. I can likely benefit a lot more from learning Python if I did 100 hours spread out over the course of 6 months then in a few weeks. That consistent shot of, "oh, yeah" over the course of 6 months is going to train my brain to remember easier than cramming it all in for a single test.
January 11, 2016 at 3:25 am
First off, I think that xsevensinzx describes a critical problem of learning a new skill when it will not be continually used. I used to be quite good at PowerShell yet now, through lack of use, I am back to a level of searching before doing anything. Why didn't I just use it for 5 minutes every day? The simple explanation is another issue: access to technology.
Over the years a number of places have been so locked down that you cannot even spend your breaks working on something unless the technology is already installed. Often these environments have zero new technology on them. Quite often half the Internet is blocked. I don't think it a coincidence.
Gaz
-- Stop your grinnin' and drop your linen...they're everywhere!!!
January 11, 2016 at 5:57 am
For some one with decent computer language experience, the problem isn't learning new syntax or or even getting a good sense of how a language flows. It is learning all the packages what they contain and how to use them. I watched my son take Python into the esoteric realms of Google's neural network. I think he spent approximately 35 hours getting an install configured and got one training set working. That is a lot of time for someone who isn't a student and has other obligations at work.
I say pick a technology which applies to your work and spend 15 minutes every morning to read documentation, or google some feature and read more in depth. That time is always directly relevant to your work and what you learn really adds up long term.
January 11, 2016 at 6:02 am
100 hours? That is maybe somewhat more than taking a college level course, isn't it? I think 100 hours is a 'drop in the bucket' of what is required for really learning a skill. I'm 73 years old and still using my DBA and SQL skills, but realize that I'm already obsolete relative to using new features. During my 42 years working in IT, it was my practice and my pleasure to continue to go to a local community college for evening classes just to have an opportunity to 'sample' new technology and techniques, but I was far from competent in them. My take is that in 100 hours you can get a basic idea what something is all about, but you still need many more hundreds of hours of actual use, trial and error, and real life experience to truly develop and skill. This is exactly why you need to find a position where you have a mentor who will help you develop the wisdom to accompany your knowledge.
Rick
Disaster Recovery = Backup ( Backup ( Your Backup ) )
January 11, 2016 at 6:36 am
I don't disagree with what's been posted previously. The practice part is essential.
As to the article, some context is needed around the statement "for most disciplines, it only takes one hundred hours of active learning to become much more competent than an absolute beginner.".
Since an absolute beginner would likely have zero competency, how much is "...much more competent"? Some type of qualitative or quantitative description is required
January 11, 2016 at 6:49 am
tnpich (1/11/2016)
I don't disagree with what's been posted previously. The practice part is essential.As to the article, some context is needed around the statement "for most disciplines, it only takes one hundred hours of active learning to become much more competent than an absolute beginner.".
Since an absolute beginner would likely have zero competency, how much is "...much more competent"? Some type of qualitative or quantitative
description is required
How many more times competent than someone with zero competence? Why the answer is undefined of course!
January 11, 2016 at 6:56 am
I agree you can learn quickly but I think most modern languages will take longer. It isn't just th syntax it is knowing the libraries and namespaces. Those can be months to get good with and years to have an encyclopedic knowledge. It doesn't take skill to find it but someone that knows System.Serialization exists for example will be 100X more productive than the novice C# dev that starts writing their serializer themselves for example. Or you'll make design decisions that are wrong and costly to undo: example not knowing if a language does pass by value or reference and creating a lot of memory bloat.
That said: that is what mentoring and code review is for. As long as ~20% of your people know a language really well they can pass the knowledge down for the 20min a day that it is needed (as with most things in tech you really earn your money not for the hours of mundane typing work but for the 5min that you are the only guy in the room with a solution).
January 11, 2016 at 7:02 am
It's an asymptotic type of thing. You gain a lot in the first few hours, but becoming really proficient can take quite a bit longer, particularly in languages that introduce a new paradigm.
But after you've learned a couple the process does go faster. I've seen this in other fields, like music, where someone who plays a couple of instruments can pick up a new one and produce credible results in a reasonably short time.
...
-- FORTRAN manual for Xerox Computers --
January 11, 2016 at 7:15 am
100 hours? You're off by an order of magnitude.
Assuming you spend a full year working @ 40 hours/week that's 2,080 hours.
It takes *at least* two months (8 weeks or 320 hours) to gain basic proficiency with a language, its syntax, and the *basic* methods used in the language (unless you want to write VB programs in C++!). That's working with it 8 hours a day. Basic proficiency means (for instance) using pointers in C or set-based programming in T/SQL and not having to google every single line of code for the proper syntax. IDEs help, but they aren't a panacea.
True proficiency takes at least 6 months (1,040 hours) and fluency (basic mastery) takes at least a year (2,080 hours).
And that's just the *language*, not counting frameworks and all the other tools.
You want to be guru-level? 5 years. At least.
There's a world of difference between being able to hack something together with spit and baling wire and creating a professional-level application that can stand up in a production environment.
Mind you, that's assuming immersion. Doing only occasional, casual use
means you'll never even reach basic proficiency. And junior level developers need at least true (6 month) proficiency. Not to mention junior developers probably haven't even grasped universally applicable algorithms yet.
January 11, 2016 at 7:28 am
It is definitely quite tricky to retain the information.
I keep a personal digital diary where I try and reference code , write a blog and I ve recently signed up to some udemy courses.
The good thing about the udemy courses (there's a sale on at the moment and I am getting hours and hours for £9) you have lifetime access.
May or may not be good I guess lifetime is as long as they keep going 🙂
There are bloggers out there though that have used their sites to create their own personal code libraries. I think that's a good way to go. I find I know that I've solved problems and I know how I did it but I will forget the detailed syntax so I am trying to do the same and create a kind of online personal library.
In this way I hope to build up the experience in each discipline rather than constantly dropping back to zero. If I have the code previously done and personal notes on how I did it - it really seems to come back quicker.
cloudydatablog.net
January 11, 2016 at 7:42 am
I have heard that if one were to spend one hour per day every day for five years they would be the expert in a given subject matter. For a seven day week that's 1,820 hours and for a five day week that's 1,300. This seems low.
A quick search on Google using, "How long does it take to become a journeyman?" yields anywhere from 2-8,000 hours. Given ~2,000 hours per "normal" work week (what us that anyway? 😉 ) informs us that between one and four years full time for one trade.
Given the half-life of most languages, projects and so forth I conclude we're screwed. 😀
Seriously though, after almost 30 years at this I find that the passion to learn still exists and I dare say in most cases this would not be the case for, say, a pipe fitter. One advantage software developers have is that the underlying reasoning process doesn't change much. As someone else noted it's keeping up with the tool sets.
I will say though that there is a difference between imperative, object and functional (etc.) programming and that understanding is crucial.
https://en.wikipedia.org/wiki/Comparison_of_programming_paradigms
Doug
January 11, 2016 at 8:15 am
... I ran across a piece that referenced a slightly shorter rule, the 100 hour rule. The rule is fairly simple: "for most disciplines, it only takes one hundred hours of active learning to become much more competent than an absolute beginner ..."
To put it another way; it only takes one hundred hours of active learning to appear much more competent than an absolute beginner in a job interview.
"Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho
January 11, 2016 at 9:08 am
One thing that strikes me that I've seen more and more of is pair programming, esp remote pair programming:
https://en.wikipedia.org/wiki/Pair_programming
The trick is how do you find a competent mentor and pair them with a mentee, provide remote desktop software and audio and do this all for little or no money? Small group GoToMeeting subscriptions are now very affordable. Many code bootcamps use this pair programming model and they are successful with it. However, it does require flexibility and patience.
I do think this is where the future of technical training is headed. I also see this model being used for taking technical certifications too. Do a few chapters or sections of a course and then when you are ready, raise your hand and get immediate feedback.
And that's the secret in the secret sauce- getting immediate feedback from a human-in-the-loop system while you are learning something new. Don't wait until you think you have mastered it, just study long enough until you think you get most of it and then seek to enter into real-time feedback loops. Which brings up the other side- don't waste a mentor's time. Do your homework first before asking for help; don't expect a mentor to spoon feed you either.
I also see 100 hours as a good benchmark metric too- see how far you can get learning something in 100 hours and see if this is something you really like to learn more about. If not then you haven't lost that time finding out this is not for you. If you like it and want to learn more, then you already have a base to build upon.
January 11, 2016 at 9:39 am
Maybe it is not always as straightforward as picking up new skills and mental models. Sometimes a person may have to 'unlearn' old approaches, such as a procedurally-trained programmer coming to declarative languages, or a competent manual typist learning word processing. The more of these confounding skills (and the greater the degree of mental set or inflexibility), the more time it may take.
Viewing 15 posts - 1 through 15 (of 25 total)
You must be logged in to reply to this topic. Login to reply