For anyone interested in programming and professional software development. Here are 5 challenges new software engineers face in consulting.
If you like this article, you can check out my walkthrough of general application development here.
5. Code Fatigue
Professional programmers program….a lot.
As an entry level engineer, I program a minimum of 45 hours per week at my consulting job, and 50 to 60 hours for 1 to 2 weeks per month. With these numbers, my average has been close to 50 hours per week over the past several months.
80% – 90% of my time at work is spent in front of a computer.
It’s numbers like this where actually enjoying to code can help make all the difference…but the fatigue struggle is real.
4. Dealing with random demands
“So tell me again, why are we implementing these requirements as Z-X-Y instead of X-Y-Z??” Because the client wanted it that way.
“So, why are we allowing manual entry of supposedly unique identifiers that should never ever be manually entered?” Because the client wanted it.
Thankfully, the requirements aren’t too difficult, and if necessary we can often give a good reason for why their request should not be implemented.
I’m either laughing or crying when going over new requests.
3. Interpreting Requirements
How you interpret a project’s main requirements is part of what separates the good engineers from the great ones, I’d say.
It’s one thing to take some documents and build what the pages instruct you to build. It’s another to take documents and build what the client actually wanted.
This is one of those things that comes with practice, but if you don’t try to understand it, you may never actually learn the skill. I’m still trying to pick it up myself.
2. Working with Testers
The tester I work with is a great guy. He’s only a few years older than me, very intelligent and is easily one of the hardest workers on the team.
He also drives me insane multiple times a week.
If our tester had been the one bug checking my senior project, it would have taken an extra semester to finish.
The benefit to this, of course, is having your name tied to a high quality product that is proven to be robust…so in the end, we love our testers.
1. Actually Engineering Software
For this last bit, I’d like to give an example of what I wished I had spent more time learning about in college.
Think of an idea (planner app, website with users, anything data driven, etc.), decide on a technology stack to build it (literally any stack will work, don’t listen to critics so much when the end goal is knowledge), and configure your working environment (i.e. download and setup all necessary software on a computer).
This part alone will take several hours, if not a few days.
Then, set up a project schedule and build your idea, one line of code at a time. A smart way of doing this is to rapidly build a working prototype that demonstrates the core ideas of what the overall project should embody. This part should take even experienced coders a week or more.
Once you’re this far, don’t stop. Reiterate on the prototype, finish it, and launch your idea on a public platform. If you’re talented, experienced, and great at managing, you can probably handle all of this in a few weeks. It took me 6 months of tinkering with my first solo app project before finally launching it to the Google Play Store.
If you have accomplished all of the above, congratulations, you’ve shown that you can successfully take an idea and make it a reality. This is what I wish I learned and performed multiple times in college. This is software engineering and what software engineers are working on day in and day out.
Thanks for reading!
Thank you for checking out my blog. I hope this serves as a beacon for soon to be graduates and aspiring programmers.
If you liked what you read, please share and comment to let me know some of the challenges you’ve faced as a new professional in your field.