I Wrote Down Everything I Learned While Programming for a Month
1–10 of 50 posts
Re: I Wrote Down Everything I Learned While Programming for a Month
#2The result revealed that we do not actually learn much and that we have misconception about 'learning.'
Re: I Wrote Down Everything I Learned While Programming for a Month
#3I wanted to measure how much I was really learning while programming. So I wrote down notes every time I learned something for an entire month in January. The result revealed that we do not actually learn much and that we have misconception about 'learning.'
Learning is also about the big picture. Counting the number of factoids that you pick up about specific languages isn't the same thing as gaining a broader understanding of software development, or of a particular framework or even a specific codebase.
Re: I Wrote Down Everything I Learned While Programming for a Month
#4I wanted to measure how much I was really learning while programming. So I wrote down notes every time I learned something for an entire month in January. The result revealed that we do not actually learn much and that we have misconception about 'learning.'
I don't know that it is fair to extrapolate conclusions about "we" from the single data point of just yourself. Learning is also about the big picture. Counting the number of factoids that you pick up about specific languages isn't the same thing as gaining a broader understanding of software development, or of a particular framework or even a specific codebase.
Re: I Wrote Down Everything I Learned While Programming for a Month
#5Pedagogically speaking, I'm curious if this will actually help. It seems to me that note taking and review is definitely an important part of learning, but I've found that writing out in long-hand and being able to draw diagrams helps considerably. None of it useful without regular review, and application too. I'd be curious to hear other people's thoughts on this approach from a retention/review perspective.
Re: I Wrote Down Everything I Learned While Programming for a Month
#6Earlier quoted context omitted.
I don't know that it is fair to extrapolate conclusions about "we" from the single data point of just yourself. Learning is also about the big picture. Counting the number of factoids that you pick up about specific languages isn't the same thing as gaining a broader understanding of software development, or of a particular framework or even a specific codebase.
I can't read the article(blocked at work here), so at face value I agree with you. But then the question is, how do you go about measuring the latter?
Isn't that the mantra of BI? Be careful what you measure, because that is what you will improve.
Re: I Wrote Down Everything I Learned While Programming for a Month
#7Turned out, I'm not learning new things too much at my $dayjob (or my attitude is wrong). Ultimately, I was disappointed, but it made me reconsider just how much I'm really implicitly learning - turns out that more often than not, those are irrelevant minutiae instead of more fundamental facts. I favor more explicit, focused learning now.
Most notes were obviously about code (Java, JavaFX), some about my mental state while coding. Some more interesting ones:
-
There are some serious reasons[0] for Java not to have Pair or Tuple classes in its standard libraries. They mostly boil down to avoiding people using Pairs as cons cells to avoid creating classes that would properly name and give meaning to what is being composed and why.
-
TabPane in JavaFX has a division-by-zero exception in the arrow keys handler when you have 0 tabs in the pane. Note, modulo op (%) can cause division by zero too. Obviously.
-
Storing trees (hierarchical data) in a database -- closure tables. Explanation: [1], HN thread: [2].
-
Thread.setDefaultUncaughtExceptionHandler FTW.
-
Switch-case has lexical scoping on the entire switch block. Example:
switch(something) {
case foo:
String abc = "xyz";
break;
case bar:
//String abc = "uvw"; //wrong - abc already exists; it's scoped for the entire switch
//System.out.println(abc); //wrong - though abc exists, it won't be initialized in this case block
}
For per-case scoping, we need explicit blocks.Nice trick question for an interview, lol.
-
Stress is bad.
--
[0] - http://stackoverflow.com/questions/24328679/does-java-se-8-h...
[1] - http://www.slideshare.net/billkarwin/models-for-hierarchical....
Re: I Wrote Down Everything I Learned While Programming for a Month
#8I wanted to measure how much I was really learning while programming. So I wrote down notes every time I learned something for an entire month in January. The result revealed that we do not actually learn much and that we have misconception about 'learning.'
Re: I Wrote Down Everything I Learned While Programming for a Month
#9Most learning is very hard to condense into a short note. For example, "Booleans have a toString method in JS" is a tiny factoid that, yes, is something that can be learned. But I think it is only a minor fraction of what is actually learned.
An tennis player may write down what they learn in a month, trying to get better at the game. But ultimately, much of the learning comes from understanding abstract patterns and building up a portfolio of experiences to draw reference to in real-time.
It's the same way with programming - if I work on a game, and use some engine - yes, I'll learn the API to that engine, and maybe some extra factoids about C# I didn't know. But the learning that does me the most good is the more abstract stuff - intuition about how to structure larger projects - how and when to start focusing on performance, rather than features. Stuff that doesn't really boil down to a one liner, and you may not even realized you learned until after the fact.
Re: I Wrote Down Everything I Learned While Programming for a Month
#10Earlier quoted context omitted.
I can't read the article(blocked at work here), so at face value I agree with you. But then the question is, how do you go about measuring the latter?
I'd ask a different question, of why do you need to measure it in the first place? I learn more about our codebase, my productivity goes up -- I deliver more updates, with less bugs, faster as I learn. Do I need to measure the details of how much I learned? Or is it sufficient to just know that I'm grokking more each day, and that is reflected in my work? Isn't that the mantra of BI? Be careful what you measure, beca…
The corollary is that you don't improve what you don't measure.
> Or is it sufficient to just know that I'm grokking more each day, and that is reflected in my work?
OP's point is, I believe, that you don't know that you're really grokking much of anything and how much it's actually reflected in your work, because you're not measuring it. This can work if you have good feedback mechanism at work, though.