OK, so I'm self employed, which is to say, I live with my parents and have no formal income.
I'm working on an app that I think is really interesting, etc. But I find that whenever I come up to some annoying part, I work on it for like 10 minutes and then browse the internet for an hour.
SOme days I can work for 5+ hours without breaks, just because whatever section is interesting. But most days I end up going to sleep pissed off because I only did like an hours worth of work and wasted the rest of the time on the ienternet.
So give me tips, how do you get yourself through that incomprehensible yet somehow boring and repetitive code? I figure some of it is just because I dont have any sort of plan or anything for what i'm going to do (the app is pretty original) or when I'm going to do it, has that helped you? I've got no CS background or anything and i've always thought flowcharts were bullshit, but obviously some people like them.
I was working on it for like 6 months before i realized it was shit and started over, which was good for about a month but now i'm running out of steam. Yesterday I spent reading manga and today I tried to come up with a new meme for /b.
Sorry if this is bosnian, i wrote like 20 lines of code today. Fuck.
Name:
Anonymous2006-01-17 18:23 (sage)
Seeing as how I've got a simliar problem I'm not the best person to give advice. For example, I really should get back to coding instead of talking to you. Yes... I think I'll do that.
Name:
Anonymous2006-01-17 18:28
I find that having lots of sleep, some good music, and many short breaks helps with difficult code.
I also find having a checklist of what to get done does wonders too. Tiny steps, tiny steps...
Name:
Anonymous2006-01-17 18:49
lol, My suggestions are the exact opposite of the previous poster - but I think I might have a different problem:
- little sleep so you don't think too much about the subject at hand
- no music or only atmospheric so your focus narrows down to the task at hand
- just keep going until it starts getting interesting
The intellectual challange of designing a program for me has very little to do with actually writing the program. I end up spending most of the time looking up function calls and generally figuring out where stuff is and how it's used. Which, I guess, is a self-fulfilling prophecy as it usually keeps me from programming and thus learning.
>>3, sleep, music and breaks (which end up longer rather than shorter) are what I've already been doing.
>>7, thats not what I mean to say. My code is actually pretty good.
Thanks guys, I feel better now. I think I am going cut back on the music and breaks (not sleep, >>8 is right), make a detailed checklist and a higher level plan/roadmap. Part fo it is definitely that I get stuck on high level decisions when I want to be coding.
Probably limit myself to /prog/ too, at least as long as I can take it. Good luck, >>2.
Go out and get a job for a year. Having to code other people's shit 8-5 every day will make you treasure the time you can spend on your own code rather than avoid it.
I'm with >>14. There is nothing like coding on someone elses problem for $ to teach you how to keep on task as well as other valulable development skills. Sure there are lots of bad dev shops, but you don't have to work for them.
Good doesn't mean they use cool language X or Y, it means they are professionals who you will learn a lot off. If you go into a place and you are up there with the other guys there then you are wasting your time. You need to be around people who you will learn off.
After you have been in that kind of environment for a while you will have no difficulity working for yourself and keeping on task.
When I'm hiring I would be wary of a guy who had been working by himself for a long time because he has probably missed out on developing some important skills.
Name:
Anonymous2006-01-21 22:13
>>1
Make yourself a goal each day saying you will complete such and such feature...
Name:
Anonymous2006-01-22 22:51
>>1
i used to think flowcharts were bullshit too, and ended up pretty much like you are now. having some sort of diagram directing your code is immensely helpful in getting through the tedious bits, i find.
when i'm stuck for something, i'll usually just whip out a whiteboard and sketch out what i think my code wants to do until it all makes sense. then i go back to the code, and it usually just falls into place.
Name:
Anonymous2006-01-23 4:27
>>18 Agreed. I usually have one diagram (or set of diagrams) which I keep coming back to over and over. Usually they are scribbled on a bit of paper, but sometimes if I have to show them to other people I will draw them up nicely.
Make sure you keep updating the key diagrams as you tweak the design and spot problems with them.
Name:
Anonymous2006-02-01 19:36
...fuck. Im in the same damn boat you are, I'm slowly learning C, have an assignment due in 8 hours, I was coding for 3 hours straight, hit a bump, now I'm on 4chan. I am fucked.
Name:
Anonymous2006-02-02 21:20
>>20
Your teacher was either total crap or you just didnt do the lab assignments. Programming isn't one of those subjects which you can learn "overnight". But you do get the gist of it when you do the lab assignments.
I was totally lost in the initial lab assignments and just copied works. Then I started to work seriously on the big assignment (with 2 weeks before the deadline). It was total hell but the result after I handed in was that I finally understood how to program proper working code. Since then I have been able to accomplish all programming assignments without that whole "I'm lost" problem. The only headaches I get now is figuring out how to solve this problem in the language I'm using which is what programming is all about.
Name:
Anonymous2006-02-03 7:34
I've always said programming is a skill that cannot be explained, and is spontaneously learnt. Students learn the syntax and functions of whatever programming language, but they can't do shit because, even when they understand what others' code does, they can't think of how to do stuff themselves. Until one day they wake up and realize they know how to do virtually anything. It's more of a way of thinking than a technical knowledge. Catching this may take any amount of time from one week to six months, it seems to happen at random and it may or may not depend on the person's intelligence.
- I know people who never made it. They had to quit because they knew everything but couldn't do anything.
- I know people who looked like they would never make it after many months, but they did, and now they are making bread off it.
- I know people who got it in one week, and they were doing their own projects since.
- I know people who got it even before they learnt actual programming. Perhaps they were born with this skill. The second they were taught the syntax of any progamming language, they started doing all sorts of amazing things with their limited knowledge.
I took 2 weeks. I was taught some very basic things at 13 because I was bored. At first, I was useless. Then I suddenly realized I could do anything in pseudocode, and just needed to learn the syntax and functions to express it. I even asked my teacher for "a variable where part of its name is another variable" before I knew arrays existed.
I think the benefit has more to do with consciously understanding the solution and recording your understanding. It's the same sort of benefit I've seen people get from writing out longhand the algorithm(s) they'll be using, either on paper or in comments, and then coding against those.
But yeah, flowcharts are probably my favorite way to understand 'em, too. :)
Name:
Anonymous2006-02-03 9:10
I even asked my teacher for "a variable where part of its name is another variable" before I knew arrays existed.
I remember the moment when I discovered arrays. It was pretty much what you describe except I didn't have a teacher. I'd been trying to figure out a way to automatically generate a large number of variables a1, a2, ..., an, and I was searching through the qbasic help file, and then suddenly I found the Dim statement. I was most pleased.
I was probably about 13 at that time too.
Name:
Anonymous2006-02-03 17:06
My first insight was realizing, back when I was 7 or so and programming in BASIC on my parent's Atari800, that a FOR loop could do more than just act as a delay timer.
Name:
Anonymous2006-02-04 1:59
I'm not the most proficient programmer in the world, but I remember taking a JAva computer science class in my first year of high school. It was Computer Science 2. I did alright in the begininng, but got sort of annoyed and somewhat lost as the year went on. After about not really doing any more programming, I began looking at the Quake 3 source code and modifying things to change the behavior of weapons. Then I went back to trying to write Java programs from scratch and was like "oh shit I get all of this stuff." It was pretty cool
Name:
Anonymous2006-02-04 5:55
Java almost destroyed my passion for computer science. I'd been programming for years before I had to use it, but just two years later I believed that I hated computers and anything to do with them.
Name:
Anonymous2006-02-04 6:15
>>25
When I discovered loops, I thought they were silly. After all, what can a loop do that a goto can't?
>>27
After 3 years of Java programming, I thought that I no longer loved programming, and would have to change my plans and become a sysadmin or something. Then on an impulse I started learning other languages - Common Lisp, Python, Ruby, hell even Ada - and realised that I still loved programming, I just didn't love Java.
Name:
Anonymous2006-02-04 13:48
>>27
I know your pain. Find something else as fast as you can or you'll kill it. Leave Java for suited "business solutions consultants" working till 10 PM in a professional, best-practice, object-oriented, XML-based, business solution.
Name:
Anonymous2006-02-04 16:08
>>28 >>29
When I tell people I love programming and they ask me to look at Java, I promptly tell them to piss off; I said _programming_, not some heart-attack inducing cancer accelerator.
Years ago I decided to get off the pile that is Java and pursue other languages. Now, not only do I get things done well ahead of schedule, I have plently of time to actually learn and try new things.
If my job didn't require Java, I'd gladly completely give it the final shove off. Although, I noticed that if you learn how to work with something completely without Java, you can get the job done and understand it far better that those who learnt it using Java, possibly because you weren't weighed down by all the Java-centric idiocity.
>>21
The best parts of doing assigments is screwing around seeing how much better you can make it and observing various effects :D
Name:
ColdPie2006-02-05 3:03
>>1
I'm in, more or less, the same situation as you. I'm working on two games (one by myself, one with a friend) and just can't bring myself to sit down and CODE anymore. Like you, I used to be able to sit down for 5-9 hours straight and turn out some really impressive code. Now I can barely get myself to add 10 lines. I think my problem is that I'm past all of the fun, "easy" stuff and am starting to get down to the picky things I put off 'till the end. Bad move, I guess.
For those who are interested, you can view my projects at
brightnightgames.com
not a problem - and for a timer that might help you, try my friend keno's timer - seems to work pretty well. Trying to get him to add a 'ding' of sorts, so you know when to switch from work to play. I just make the window big enough to see the 'work' or 'play' message, and keep an eye on it like that.
I'm a professional coder (and quite experienced, I can say), yet I still have lots of time filled with problems like yours (>>1's). I used to work happily 8-16 hours/day for 3 years. But now some days I don't work at all (ouch, my job). It's not the code that makes me lose interest ... it's the lack of external motivation. My boss has health problems and he can "force" me to work only once a few weeks. I know and do the workarounds to this, but manga/anime takes out some of my time and energy, I guess ^^.
Internet browsing ... try cutting off _any_ inet usage for 4-5 days. There's a high chance that this can kick-start you up on a series of productive weeks.
Try remembering the mood/state you were in when you worked 5+ hours/day.
If you have little iron in your blood, don't eat much at once - instead, increase the number of meals from 3 to 5+/day. The less blood in your stomach, the more you have for your brain. Getting lots of food-energy at dinner, can give you extra energy for the next day.
But the most important thing is reasoning/motivation. Is it better to become an awesome (and kinda rich) coder or someone that has read all manga that is out there? You think out of better motivation for yourself.
You'll know when it's time to relax (it's after milestones, usually).
btw, flowcharting... it's something of the last century. Clear code, style, and enough comments to remember your ideas - boost your coding speed and reliability. (try to always code as if somebody else will be continuing your project).
Duh, there's also so much to write, but hey I have to work now :)
I have found that when I don't want to code, it's frequently because something in the current design is holding me back, and sucking out my enthusiasm. What seemed like a good idea at the time is holding back the new requirements, and fighting against it sucks out all my will to work. Therefore, picking out this design error and refactoring can usually get me going again.
>>40
Indeed. In my current case it is often the insecurity on wether the design I've laid out will work or lead to a lot of extra work (Like currently working out a strategy for 2d collision detection). Then looking over what I've already done, and starting to note down an extra 10 issues of which at least one I have no idea on how to solve without bogging down the framerate to half. Luckily since this is my own project I can arbitrarily set restrictions on what is possible or not, and if someone asks me about an issue I can say "I don't care" without much percussions. Hate jobbing for money, despite how much useful shit I learn.
Name:
Anonymous2006-03-10 18:58
>>36
>Is it better to become an awesome (and kinda rich) coder or someone that has read all manga that is out there?
Clearly the latter.
Name:
Anonymous2006-03-21 20:32
lads, i'm undertaking a research degree and currently freelancing part time. i've previously worked for a company and let me tell you the only way we keep coding/designing and running the show is the following:
a) coffee breaks / cigarette breaks; cos you need it.
b) make sure you're shagging someone after work
c) lay off 4chan! cos it'll chew up your time like mad!
d) go and jerk off in the toilet to release steam every now and again. seg faults, nullpointers, whatever the issue may be. bad clients.. etc etc. overblown budget...
e) have your boss hire extrememly hot secretaries.... that way you want to come to work! besides, office xmas parties is a blast with heaps of hotties letting lose. and also refer to the point above. office hotties motivate everyone.
f) all else fails, chuck a sickie. take a day off instead of pretending to do work.
other than that, try to pace yoruselves and go for friday arvo drinkies. you'll feel so much better :)
quit moping about and sitting on your ass reading comic/manga or whatever. your time is money. make the most of it. speaking of which.. back to work :p
Name:
Anonymous2006-03-22 17:13
a)duh
b)mmmm....nah
c)duh
d)too much work, i'd rather type java with my penis than spend time jacking off at a toilet
e)what if you want nothing to with women?
f)something else
Name:
Anonymous2006-03-22 20:08
>>43
Find a guy then. I don't believe there's such a thing as an asexual human.
Name:
Anonymous2006-03-23 5:19
>>43 e)what if you want nothing to do with women?
Then you're a fag, or already tried them.
Name:
Anonymous2006-03-23 9:43 (sage)
On the top right corner of the thread page, it says "Back to Programming"
Name:
Anonymous2006-03-23 12:03 (sage)
>>45
Both. >>44
Some people like to practice cetain skills known as strive, and resilience, I happen to be one of them, of course as is ever so unfortunately happens to be, my nuts continue hormone production, and my skills have not been the best at a time. Though all I can do is pickup and continue, certainly make an attempt at it, it really is quite similar to programming because if you really liked it a lot when would you ever want to run away from it. Or the ideal of course, liking it more than anything, so that there would be no other things that take your attention away from it, howver I'm pretty damn weak as of yet, failed battles all around against sleep, hunger, time, sexual desire and miscellaneous other forces that are working against my will and ability to slam down lines as consistently as I wish I did. But of course, I am continuing to work on it, wish me luck or something. >>46
roger that
Name:
Anonymous2006-03-23 16:55 (sage)
>>47
Dude, you sound like an ascentic. Wake up, your body isn't your enemy; this isn't the dark ages, man.
Your procrastination cures are about mixing in pleasure with the pain of programming.
But I started programming because it was pleasant all by itself. That was Turbo Pascal.
Now 90% of my time is looking up functions in bloated libraries and tracing bugs hidden deep in the layers of OO classes or script "abstraction".
That is not a creative act, so it is not fun.
I long for the old days of simple languages and small libraries. There is a spark here and there: Python, SDL, Forth; but nothing has ever matched the Zen of working in Turbo Pascal. 7 hours could go by and I wouldn't even feel it. There was no desire or thought of anything else but finishing the creative act. Only the pain of hunger or overwhelming fatigue would finally break my concentration.
Locating and understanding a function in the Turbo library took a minute at most, not all day like it so often does in modern packages. Even when you find a function that seems promising, you may still have to use trial and error to fully understand it.
Simplicity is the answer.
Name:
Anonymous2009-01-14 4:41
Forcing yourself to program is as easy as forcing yourself to draw art.