Jump to content

My problems... and yours?


longbyte1

Recommended Posts

I've sought support for many years over my troubles, but nobody really seems to understand my problems since they don't understand what coding projects consist of or what I really do in my daily life. Today I want to start a thread on this, because I seriously need motivation to continue my pursuits without any blocks. I want to avoid the mistakes I committed previous summers and make this one a very productive one. I am most comfortable with this forum than with any other community.

During school, obviously I have no time to pursue any personal endeavors. The teachers are hammering out homework (the due dates to be clumped every other week), my brother wants to play games with me in my free time, and my friends are too busy talking to their other friends. People in my class respect me for my immense knowledge in computing, and this isn't my ego talking. As a result, my friend A tends to ask me to start on big coding project Y, even though we haven't even begun big coding project X, because friend A believes that I am capable of carrying "half" the codebase (which I cannot due to poor design and experience, so it could take me about 8-12 man-hours (excluding initial research times, looking for libraries, setting up the project) to go from no code to "got something on the screen") before I could even say "no, this is too complex for me to ever finish." And then the next week, I push the code, and Friend A says, "Hey, your code doesn't work, did you even test it? Ugh, what an ugly mess." But I can't do much about it, because it's my first time doing anything related to project Y and I spend too much time fixing bugs that I could have avoided if I thought about the design in my head correctly in the first place. And, of course, Friend A codes 500 lines of code in one day ("how'd you do it so fast?") and then goes inactive because he has no free time. Right, neither do I, so why did I agree to start this project in the first place if we both know it's not going to get finished?

Now it's June, and summer is coming. Yay, no homework. But with strings attached! First, I have to continue a four-year summer program that basically works like school and spans for two-thirds of the summer (but Fridays are free). It keeps me busy, but it also puts load on me so I can't really pursue coding for anything longer than half an hour in one sitting before getting called to do something or getting distracted looking at something in the forums. Second... oh right, the projects that I started last summer and the projects that I "started" on during the school year that I vowed to work on when I have the time! Two of them I have made substantial progress (over 1-2 years' worth of time), and the others are just sitting there. I've heard some popular coders have a massive graveyard of unstarted/unfinished projects, but I don't want to be like them with their tiny success-to-failure rate.

My daily schedule is totally fragmented: there's tiny bits of free time all over the place but that I can't use due to set-up times (turn on computer, remember what I was working on, etc). A lot of that time I end up either (1) wasting on looking at forums, or (2) daydreaming to figure out what I'm going to do the next time I get a good hunk of free time. I need help defragmenting it. It's what turns a perfectly good afternoon into a completely worthless one very quickly and wastes on motivation.

As for motivation, I have another problem: why do I code so slowly? When other coders do livestreaming, in half an hour they can get something pretty good going, no hitches, few design issues, and very few random bugs. They also don't have to fiddle with libraries when some error comes up. As I said, it takes me a frustratingly large amount of time to get anything going, so it is easy to abandon what I've started out of frustration. So I code quickly, but my code fails quickly because I don't design or diagram anything (every time I try to diagram, there are just arrows going all over the place with no particular meaning), while my friends are completely backward: they could talk about how they want their game to be like for days on end, but not a single line of code would be written. I'm trying to be the no-nonsense guy, while they're trying to be the dreamers.

I can comfortably do "hello world" and do algorithms, but how exactly does one go from boring things like parsing files to small games? I want to make a small game, but the contests that are held in my area end up being things very similar to UIL CS hands-on, which I'm quite tired of. Especially when they make us do it in Java. Java is comfortable for me, but it's awfully redundant and nothing fit for file parsing and algorithms. (One time, the contest host pulled out his solutions in Scala when he was going over each question, since apparently it was a more efficient language for the given problems. He did not seem to even bother making any sample Java solutions.)

Anyone have similar free time/productivity issues? Any tips?

Edited by longbyte1
Link to comment
Share on other sites

As for motivation, I have another problem: why do I code so slowly? When other coders do livestreaming, in half an hour they can get something pretty good going, no hitches, few design issues, and very few random bugs.

Jake was right on this one: to be good at something, first you have to suck at it. It sounds like you are past the stage of being totally useless, but these guys are probably a couple of years ahead of you. The main difference there is not being able to do it or not being able to do it, but mostly the speed at which you are able to do it and the elegance of the resulting code.

I am a horrible programmer at best, but I recognize the steps you have to follow in my own area of expertise. There is a breaking point where things become easy instead of a struggle and it often goes by unnoticed. If it is any consolation for you; probably 5% of my time coding is writing stuff, 95% is repairing stupid mistakes, or looking for those mistakes in the first place.

Link to comment
Share on other sites

Probably the only advice I can really offer, don't know if it will be any use: Is it possible to quit some stuff? Otherwise, you're going to need to wait before you can do stuff you want to. Alternative, sometimes, you need to decline when people request things, or cut some activities out for a time, so free it up for others.

I hear the best way to accomplish things is to set aside a big bit of time, sit down, and do it like you're at a job.

Disclaimer: I'm in no real position to be giving advice, but anyway...

Link to comment
Share on other sites

Probably the only advice I can really offer, don't know if it will be any use: Is it possible to quit some stuff? Otherwise, you're going to need to wait before you can do stuff you want to. Alternative, sometimes, you need to decline when people request things, or cut some activities out for a time, so free it up for others.

I hear the best way to accomplish things is to set aside a big bit of time, sit down, and do it like you're at a job.

Disclaimer: I'm in no real position to be giving advice, but anyway...

Yeah, that's exactly what I want to do. Inevitably I'm going to have to drop my friend's projects, but being able to keep a large amount of contiguous free time is a problem for me.

Link to comment
Share on other sites

Yeah, that's exactly what I want to do. Inevitably I'm going to have to drop my friend's projects, but being able to keep a large amount of contiguous free time is a problem for me.

99ef4e41eb0c85c7409ba75a8224a35c51a302633748fe1582e6f96cc259db56.jpg

As a rule, for me, a project is too big if the friend can't do it by themselves over however much time is necessary. Just how big are "big coding projects X and Y"? You could share the load by telling your friend, "For every 100 lines of code (or something) that you program, I'll program 100 lines of code to match yours." That way, even if you get the hardest bits, your friend is still doing a big chunk, and he can't drop it entirely.

Link to comment
Share on other sites

Why are we measuring things in lines of code again? Drop that - lines per minute, lines per hour, lines per day, lines per lifetime - none of that matters. (Unless you're writing device drivers in assembly that have to fit in a 256 byte memory area or are into some serious demoscene stuff.) What matters is if the code works and can be understood when you look at it again - a minute, an hour, a day, a lifetime later.

Abandoned projects are a fact of life. That list you have of things you didn't complete last summer? Burn it. Old commitments? You'll get back to them when the time is right. When is the time right? Depends on how useful the project in question is (or how much money you have to pay for breach of contract).

Ask yourself one question: What project would be useful _to you_ Right Now? Work on that, ignore the rest. If you can't hammer that one thing out, the other things don't matter.

As for finding time to do things? Let me know if you find a solution for that. :) The only time in my life where I had "free time" was in college and the three years I spent un/underemployed after finishing my engineering degree. High school was way busier than my life is today, but I don't have kids so I'm a bit of an anomaly.

Link to comment
Share on other sites

Well. All I have to say is this: when it comes to hobbies, if you don't feel motivated to cram more stuff into your already busy life, just don't do it. You do what you do for fun or the feeling of accomplishment. The end result in mind is "I feel good I did this", *BUT* the middle result must be "I feel good doing this despite the trouble" as well... unless it's a job, then don't do what you don't really want to.

On the subject of speed, a big part of code crafting speed is motivation. If you have problem A to solve and you don't feel motivated to solve it, then you go to work on problem B. If after solving problem B you still don't feel like working on A, you go to C... and A never gets completed or is half-assed so you can move on. Good luck feeling accomplished with the quality of A's code. I think somewhere, in a dark corner of our hard drives, Internet servers and Arduinos, we all have our good share of shameful problem A code. The idea is to keep it at a minimum! :D

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...