5

I work as a trainee in a large IT-company for a little more than one year now.

After a few weeks of crash course training, I was assigned to update the front-end for one of our departments. It started as a rather trivial project, but grew to become a total overhaul which took me almost a year to complete.

My work originally only required me to use my rudimentary C# skills in order to fix a few bugs in the old WinForms project. But as the bugs multiplied and got worse as we tried to fix them. Ultimately, my manager made the call to rewrite the whole project with WPF.

I never heard from WPF and never used WinForms either. I got a rudimentary C# training, but nothing else. Thus I started learning by trial and error - which worked surprisingly well. Although I was neither fast nor efficient, I managed to rebuild most of the features. I even improved my crappy code to a readable shape, but I never really felt like I know what I was doing (I mostly learned via StackOverflow).

I approached my manager quite a few times asking if I am doing okay. But he simply said something along the lines of "If it is working, you're doing okay", without asking me to go into details about how I did it. If I ran into a problem he gave me tips and asked afterwards how I fixed it. But it was more of "oh so you say you managed to rebuild your recursion into a far simpler for-loop the fix the bug, that's good" than any in-depth code-review.

In the end, I even exceeded any expectations and created a stable and performant product, but I feel like I could've avoided many mistakes with proper guidance (Since i didn't know anything about WPF, I did everything in C# first, mostly only having a blank window in my .xaml files until I got chided for doing so on StackOverflow). There is a lot of cleanup i had to leave unfinished before having to switch departments to assist on a more urgent project.

There's the saying "You'll learn most by your mistakes", but I feel like there is no one to point out my mistakes. I don't want any poor soul to stumble over my mess in a few years, when all I can do is to guess what the hell I was thinking when I wrote it, I want to be able to write clean and efficient code based on a standardized pattern, but I can't if I have to learn it all by myself.

Do I just overthink this or should I be more persistent about wanting more(any) code-reviews in the future?

  • maybe this is how your company does training. Maybe the old project was written by a poor soul like you, taking over from a poorer soul like both of you, etc etc ad infinitum. Maybe the future poor soul taking over is exactly the point :) – rath Dec 10 '18 at 15:33
  • 1
    i have no problem with being simply thrown at what looks like overwhelming situations at first to see how i perform - this was a very helpful expierience tho. I'd just like to be evaluated by my code aswell rather than only if it works at all. – Azzarrel Dec 10 '18 at 15:51
  • This is the norm in software. Nothing to worry about. – Fattie Dec 10 '18 at 17:52
  • If you want your hand held in software development, you're in the wrong job. Besides a code review isn't going to cover half of what you feel that you need. Code reviews aren't primarily there to teach people how to code. Just keep reading and practicing. – Brad Thomas Dec 12 '18 at 22:25
2

If you can’t get anyone to review it, find a Linter. If you are not sure what that is Google for “static code analysis”. Such a tool will find more problems, or potential problems, than your compiler. If you are unsure where to find one, ask on https://softwarerecs.stackexchange.com/

Another thing which is very important is unit testing. Did you do any, or did you just enter some values, choose some menu items and see if looked OK? Software development requires rigorous methodology (Processes).

Also, I hope that you taught yourself how to use the debugger. It is your best friend.

As Fattie said in comments, this sort to thing is sadly common, but it Is not ubiquitous; personally, I would be looking for another job, to learn proper software development. One thing that would help is working in a team, so if there is a chance to do that there, ask. If not, get out.

If you don’t want to, start reading a lot of books; not so much about the C# language, but about software development. Learn how to gather requirements. How to design an architecture and interfaces; hot to write top level design and detailed design documents, test specification; how to unit test; how to do integration testing; etc, etc.

They really threw you in at the deep end on this one – alone. If it had turned out a mess, who would have been blamed?

If they had provided more support or training, they would have had a better product, sooner, thus saving them money.

Golden rule: don’t ever listen to anyone who tells you “we don’t have time to …”. You don’t have time not to.

The point of documentation reviews, code reviews, testing, etc is to identify problems as early as possible in the lifecycle. A 5 minute change in requirements can be a few hours in the top lever design, days in detailed design, weeks or even months in coding and testing.

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.