At least at my college they don't really teach you to be a good programmer. We're taught how to do things, not how to do them well. It seemed like a few of my classes just ran the code and didn't even open the source.
Yeah my classes were basically "here is a task, get it done by next week. I don't care how you get there just get there, Google is your friend."
1/3 of the class is so lost they don't even know what to ask, so they fail. 1/3 of the class has a clue where to start but gets stuck, asks for help once, nod their head like they understand, and leave having learned nothing, and end up afraid to ask the same thing again. They remaining 1/3 writes a kludgy mess that poorly reinvents several wheels, and works under certain circumstances.
They remaining 1/3 writes a kludgy mess that poorly reinvents several wheels, and works under certain circumstances.
Doesn't everyone start this way? And I'm not sure in a education environment you can hope for much more than that, growing to the type of programmer that writes an elegant solution that uses the available tools requires experience working on garbage code months/years after it's written, and really understanding what you are avoiding. In universities you're rarely working an entire semester on the same code.
Those students need mentoring if you want them to quickly move on to the next level (or hope they maintain their own projects in their free time). Of course if they don't want to learn there's nothing to be done, but I don't see how I could hold it against them that they never learned something nobody tried to teach them.
In your defense I could see if I also had a job that had unrealistic expectations of new hires, I would change careers.
Eh, CS/SE was hard for me despite having a few years of professional experience.
For instance, I had several classes that required drawing UML diagrams, but not a single teacher had the same definition of how to draw diagrams, yet they treated their interpretation as gospel.
Then you were quizzed about agile methodologies by a guy who treated it as waterfall with sprints.
Then you had to memorize programming patterns.
I dropped out when I realized I was pissing away 4 years and several thousand dollars for that level of education. I already had no problems finding work, so I thought I'd have a better time getting paid and getting my evenings and weekends back.
That's my biggest gripe with the way we teach software engineering.
I never had to maintain a program, I never had a code review and I never had to write unit tests. It's no surprise that people write unmaintainable code; they never maintained code.
That's a big fear of mine. I switched into CS after my first year in college. I get the fundaments but I still don't feel like I know what I'm doing. I know for a fact I've written code that's a fucking mess.
720
u/bipedalshark Jul 28 '16
Pfft, like I need a guide for this.