views:

655

answers:

15

Hello all

I am final year college student. I am trying to figure out how much time i should spend on coding and learning.

+10  A: 

Surely you've realized that putting a finite measurement on the amount of time you should spend coding, is futile and hugely irrelevant.

Do what you want, but always try and keep up to date.

Dominic Bou-Samra
A: 

Coding == Learning

IMO

Xinxua
Yes, but you have to do some reading too ;)
Mark
I disagree. I know lots of people who never heard about unit tests, dependency injection, or even object oriented design patterns. These people surely have been coding for decades. They just didn't bother learning anything new.
nikie
Depends on the person. I know people who write code and appear to learn nothing. Sad but true.
Simon Knights
@Xinxua: You're wrong. Yes - Software developers must be autodidacts; but this is not enough. They must also seek inspiration from the world around them.
Jim G.
+1  A: 

The very fact you have to ask, might mean you are not ideally matched to writing code. First and foremost you should love coding, and finding out how things work.

This is not a profession where you ever stand still. Totally agree with another poster, in that you should always be looking for a better way, and recognising when there is no better way.

Mitch Wheat
@Mitch Wheat: *The very fact you have to ask, might mean you are not ideally matched to writing code. First and foremost you should love coding, and finding out how things work.* - Huh?
Jim G.
thx for the downvote. Which bit did you not understand?
Mitch Wheat
+4  A: 

When I first started programming, it seems that I learn new things by leaps and bounds. Functions, classes, inheritance and etc. But after a while, I realize that you learn by coding. I load myself up with tonnes of reading material - Effective C++, Modern C++, but nothing beats them when I actually sat down and code.

Of course, writing your code the same way over and over again does not make you a better programmer. You have to learn to think - how do I make it reusable? less error prone? portable? immune to changes in other areas of the application? easier to maintain? Is there a better way to do this?

Eventually, the learning peaks, and what you learn are what I like to term as multipliers. It's like knowing that dirname(__FILE__) in PHP returns the current directory which an include file is in. It's like finding out what's a ORM and how by abstracting away the DB you can focus more on the code logic rather than an endless routines of writing INSERTS and UPDATEs SQL statements. It's like learning smart pointers and effective use of STL in C++, using Firebug effectively when doing JavaScript/CSS/HTML...and lots more.

So code; once you get frustrated about something ("There must be a better way to do this than now!"), search for a better way - this is how I learn, anyway.

Extrakun
+1: For articulating the limits of autodidactism.
Jim G.
+1  A: 

In my humble opinion most of the time you are programming. While you program you are learning from experience. This is one type of learning. Another type of learning comes from reading books and other resources (courses, internet, Development conventions). I use books to keep up with technology and to better understand what I am doing. I read almost every day from 0.5-1.0 hour. It depends on your free time and the type of person you are. Please take into account that there are more ways to learn: code reviews, reading other people's code and I am sure that there are more that I didn't mention here. Anyway, good luck.

Ikaso
+3  A: 

When I was young:

  • Monday to Friday, 10am to 7pm, programming in office
  • Saturday afternoon, reading in Chapters
  • Monday to Saturday, 9pm to 1am, programming at home
  • Sunday, drive to downtown and pick up a few books from the bookstore
  • those were the days when Google was know as nntp

These days:

  • Monday to Friday, 10am to 7pm, coding in office (too bad I am on web now ;-)
  • 9pm to 1am, coding on my MacBook Air on a few iPhone projects
  • Saturday and Sunday, coding for another 16 hours
  • too bad, Google interrupts me too much and I cannot count how many hours are spent on reading blog and pdf books ...
ohho
I like how you pointed out that it was a MacBook AIR... =P
Blankasaurus
thats a lot of code...
Luke Lowrey
A: 

The best software workers - the rockstars if you will - are always on. Any situation can be a teaching. For instance, consider Gregor Hohpe's article Starbucks Does Not Use Two-Phase Commit, in which he analyses how the coffee vendor uses asynchronous processing to maximize throughput of customers' orders.

APC
quite intriguing: "the best software workers - the rockstars..."
Ygam
that's pretty dorky
temp2290
@temp2290 - You're on a webite called StackOverflow so "pretty dorky" is a compliment around these parts, although not as much of a compliment as "very dorky".
APC
+1  A: 

the simple answer: do not create some sort of a schedule

why?

you never can know ahead what situation you're in during a certain time, so let's say you set it at everyday at 10am, then suddenly your dog died today at 10am, your family called you to mourn over poor Snuffel...for hours; schedule's all ruined

so what do you do?

code up; if you get tired grab a book or read an article (articles today are really juicy), if you get tired of reading and coding, play games that rattle your brain (yet entertaining, something like Civilizations IV). if you're all rested, fire up your IDE and apply what you just read about. Don't worry if you get it all messy the first time (unless you're a mad genius who certainly will kill himself if he doesn't get something right on his first try).

Note: you should probably set a time for how long you play the game, though:)

Ygam
@Ygam: The original poster was asking for *guidelines*. Obviously if his dog died, then he could skip the daily coding/learing regimen! After all, he's not a robot! ;)
Jim G.
+2  A: 

You have to decide that yourself. If you're constantly feeling like you should spend more time coding, then you're probably right. You should never force yourself to the point where the sight of a curly bracket makes you want to puke either. If you're sufficiently interested in programming then the amount of time you spend naturally without slacking off/burning out, will be just fine. (And if you're not, you should cut your losses as soon as possible.)

Be sure that this kind of approach does not make you less valuable of a programmer than the angry nerd in your class who spends every waking hour coding as a part of his masterplan to get back at the world.

Şafak Gezer
+4  A: 
while (true) {
   learn;
   code;
}
fastcodejava
while (true) { code some stuff; learn what didn't work the first time;}!
Matt
A: 

It is not a question of how much time you spend coding, but how much time it takes learning.

Code until you learn what you need (concepts not constructs). If you're studying don't leave other subjects out simply to code. The chances are that if you don't like coding, learn what you can to pass your exam, fullstop, because you won't be coding as a career. The fact that you have to ask this question indicates you won't be coding as a career.

Adrian
-1: *The fact that you have to ask this question indicates you won't be coding as a career.* <- The original poster was looking for guidelines! More to the point, he/she wanted to know - Approximately how many hours do *other people* devote to coding and how many hours do people devote to learning in a given week. That is *not* an indication that he/she "won't be coding as a career"!
Jim G.
+1  A: 

I am guessing the 'learning' here means, acquiring new tips and tricks, grapsing new technology in the market and stay up to date with the trends in technology.

From my experience it is taking around 20% time for learning, and it is mainly because I work on all latest technologies from Microsoft like WPF/Silverlight/Surface. But this % of time will really depends on your personal interest/ organizational interest and the type of career growth you are looking forward to.

And if your job is merely converting domain/business logic to the code which doesn't involve critical technology roadblocks then it might be close to 0% time you need to spend on learning.

Jobi Joy
A: 

Since you didn't present any constraints or conditions in your question then the simplest answer I can give is:

Spend as much as you want.

-1: I think the original poster wanted others to *propose* constraints and conditions for his/her coding and learning time.
Jim G.
+2  A: 

I have two friends in my university, both studying media informatics, and both were absolute beginners in programming.

The first one reads a lot at home, if he has to learn new languages for a project but has never had a private programming project.

The second one reads a bit but has his own python project. A web application for his friends, where you can bet on soccer results.

Both in comparison:
The first guy is slow in programming and always stumble upon simple things and his code can be optimized (in line numbers and comments) at least by 5. And in two days he will stumble upon the same issue again...
The second guy is much faster, can easily read foreign code and languages and stumble upon one problem at most two times, the third time he used what he has learned....

So imho, doing your own project, where you code because you love it, where you work until morning to fix a bug or to finish an implementation, is the very best way to learn!

WarrenFaith
+1: For useful anecdotes.
Jim G.
+2  A: 

My suggestion would be to discover your strengths and if learning is among them, then you may enjoy spending a lot of time learning so do what you want here. Of course one shouldn't go so overboard that things like hygiene get sacrificed, so do try to maintain some basic standard of existing which includes the basics of cleaning your place, yourself, and that kind of thing.

For myself, I'd say that I'm almost always trying to learn something, somewhere. Maybe it is learning about how much patience I have in traffic or how well can I handle this curveball that life has thrown me by my having to do things like income taxes and discover what has changed in the software or tax laws from the previous year. If you look at life as a series of opportunities, you may learn a lot in the world.

JB King