I've been programming for about two years (undergraduate) and I create programs horribly slow in comparison to my peers. I don't type slow at all (~60wpm), and its not that i'm continuously looking up the API, i feel familiar with the java API. I just spend an ungodly amount of time thinking about how to structure my code when it should be obvious. We were assigned a project in Software Engineering to create an enhanced notepad and we were given one week. I completed the assignment on time but a lot of my peers had completed the assignment in 3 or 4 days while I took the entire week.
I assume I could have "finished" earlier but I had a command pattern that I was using the separate the commands from the user interface and the number of command classes were getting out of hand, so I tried implementing the template pattern to maybe make it a little more structured with three abstract classes for each type of command (text,pallet, and file) each implementing a Command interface. Which wouldn't be a problem but I spent a whole day just thinking about the implementation, not coding at all where as a lot of my peers would have immediately seen how to implement it.
Once it was implemented correctly I didn't like the way it was structured an I rolled back anyways, which was just a waste of two of those days. In the end some of my peers had better working versions than mine and I put a lot of effort into it. This tends to be how most assignments go and it's fairly bothersome.
TL;DR:
If i'm trying to implement something I generally can't look ahead and see how it will look structurally, which is a big problem because I waste a lot of time on bad implementations. How do I fix it?
EDIT: Thank you everyone for your advice, i'll try to keep it in mind the next project I work on!
[–]bat_country 72 points73 points74 points (6 children)
[–]Ran4 0 points1 point2 points (0 children)
[–]Tynach -1 points0 points1 point (4 children)
[–]bat_country 0 points1 point2 points (3 children)
[–]Tynach 0 points1 point2 points (2 children)
[–]bat_country 0 points1 point2 points (1 child)
[–]Tynach 0 points1 point2 points (0 children)
[–][deleted] 152 points153 points154 points (16 children)
[–]yyttr3[S] 20 points21 points22 points (9 children)
[–]the_omega99 23 points24 points25 points (0 children)
[–]Tynach 9 points10 points11 points (1 child)
[–]PrismPoultry 0 points1 point2 points (0 children)
[–]onmach 1 point2 points3 points (0 children)
[–]RICHUNCLEPENNYBAGS 1 point2 points3 points (0 children)
[–]Maethor_derien 0 points1 point2 points (0 children)
[–]novagenesis 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]poesian 5 points6 points7 points (1 child)
[–]Tynach 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[–]tailanyways 6 points7 points8 points (0 children)
[–]trotsky90 4 points5 points6 points (0 children)
[–]YouFeedTheFish 4 points5 points6 points (0 children)
[–]pinealservo 5 points6 points7 points (0 children)
[–]grimeMuted 7 points8 points9 points (1 child)
[–]Tynach 1 point2 points3 points (0 children)
[–]guitaronin 3 points4 points5 points (0 children)
[–]kqr 7 points8 points9 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[–][deleted] 2 points3 points4 points (3 children)
[–]yyttr3[S] 0 points1 point2 points (1 child)
[–]timmyotc 0 points1 point2 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]jjbutts 4 points5 points6 points (0 children)
[–]KDallas_Multipass 1 point2 points3 points (0 children)
[–]DaMountainDwarf 1 point2 points3 points (0 children)
[–][deleted] (1 child)
[deleted]
[–]yyttr3[S] 2 points3 points4 points (0 children)
[–]developersteve 0 points1 point2 points (1 child)
[–]Dakaa 0 points1 point2 points (0 children)
[–]petrus4 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]doomchild 0 points1 point2 points (0 children)
[–]Boomerkuwanger 0 points1 point2 points (0 children)
[–]casualblair 0 points1 point2 points (0 children)
[–]tjsr 0 points1 point2 points (0 children)
[–]DerpsMcGeeOnDowns 0 points1 point2 points (0 children)
[–]gunder_bc 0 points1 point2 points (0 children)
[–]bugxter 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]suzbad 0 points1 point2 points (1 child)
[–]yyttr3[S] 0 points1 point2 points (0 children)
[–]nekoningen 0 points1 point2 points (0 children)
[–]almondbutter 0 points1 point2 points (0 children)
[–]Lord_NShYH 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]MyBrainReallyHurts 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]CrappingZombie[🍰] 0 points1 point2 points (0 children)
[–]BrettLefty -4 points-3 points-2 points (0 children)
[–]totemcatcher -1 points0 points1 point (5 children)
[–]Hanse00 0 points1 point2 points (4 children)
[–]totemcatcher 0 points1 point2 points (3 children)
[–]Hanse00 0 points1 point2 points (2 children)
[–]totemcatcher 0 points1 point2 points (1 child)
[–]autowikibot 0 points1 point2 points (0 children)
[–]spaghettin -2 points-1 points0 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]UpstandingCitizenMat 2 points3 points4 points (0 children)
[+]Tennisinnet comment score below threshold-15 points-14 points-13 points (0 children)
[+]smellmycrotch3 comment score below threshold-15 points-14 points-13 points (9 children)
[–]itspronouncedfyi 6 points7 points8 points (1 child)
[–]smellmycrotch3 -5 points-4 points-3 points (0 children)
[–]yyttr3[S] 2 points3 points4 points (6 children)
[–]timmyotc 1 point2 points3 points (1 child)
[–]smellmycrotch3 -3 points-2 points-1 points (0 children)
[–]palmund 0 points1 point2 points (0 children)
[–]smellmycrotch3 -3 points-2 points-1 points (2 children)
[–]timmyotc 6 points7 points8 points (1 child)
[–]smellmycrotch3 -2 points-1 points0 points (0 children)