Can you tell me about your journey into Software Engineering and what inspired you to pursue this field?
I’m currently transitioning into Software Engineering after spending several years in the Oil & Gas industry, primarily in HR, customer service and logistics roles. I’m passionate about problem-solving and technology and have been building my skills in full-stack development through a Software Engineering program at Per Scholas. I’d love to hear more about your journey and any advice you might have for someone like me breaking into the field?
5 answers
Rosalind’s Answer
As for what you should learn, the fundamentals of software and communication skills. Communication skills are what will help you work with others and communicate your ideas. The ability to clearly communicate in all forms, verbally and written will get you ahead. The fundamentals of software have not changed throughout the years, how it's implemented has but understanding the basics will help with everything. Software development goes through fads just as everything else does, pay attention but keep the fundamentals in mind. The business value should be the focus. When I say fundamentals I mean understanding security by design, understanding the development of services (well defined set of capability that stands on it's own), understanding data structures and data privacy, memory management, and basics of software development process including automated testing, pipelines, and version control. Depending on the languages you have learned, you may not even have thought about memory management because the language handles it for you, but it's still important to understand when working in enterprises. You can't just load everything into memory, you may not be doing the direct memory allocations but they are still happening, so understanding the process is important. Learn multiple languages to understand how they work and when to use each. Procedural languages such as COBOL are highly used in businesses such as financial and insurance. Java is used for it's portability and object oriented nature. Python is used for infrastructure related automation and AI. The point is understanding the concepts of the languages is important, syntax is handled with a good development environment.
To start in the field be open to all possibilities, try out different areas to see what excites you the most, be curious, and learn from "failure". We all have things that don't go the way we want, this is when we learn the most in many ways. As you start your new work, remember "fail fast," which really means don't be too stuck on ideas, quickly figure out if the solution you are working on is the right one and if not move on and learn from what was done. Technology is changing too fast to be stuck on one solution, one way of working, or one architecture.
Your experience with customer service and logistics should transfer well into software engineering. It gives you the business background and the understanding of how to deal with difficult people.
Liz’s Answer
My college professor's assertion about my natural knack for technology turned out to be accurate. I would encourage everyone to delve into every new technology they come across, master it, and share their knowledge with those around them. If you're considering upskilling through returning to school or on-the-job training, identify a specific area of interest. AI is a rapidly expanding field, particularly in human resources, along with cybersecurity. Acquiring basic programming skills, like Python, could be beneficial. However, you might discover that understanding business processes can be just as crucial as technical knowledge. A hiring manager once told me that while he could teach anyone about technology, he couldn't teach them how to communicate effectively.
Swetha’s Answer
Frank’s Answer
My advice to you is to work hard and never give up. While you may have ups and downs always keep learning and developing your skills both technical and managerial. that will make you very valuable. Good luck and have a great career!
John Easton CEng FIET FBCS CITP
John’s Answer
I'll take it as read that you've decided that software engineering is the route that you're on for the time being. The one thing I will say is that that is going to change substantially in the next few years so what you do and how you do it will certainly change too. It's this change that makes the job interesting. When AI comes in and starts creating code, helping you test code and helping you manage a lot of the boring bits around software that will free you up to do other (more interesting) things.
When I hire people, I look for 3 things. Technical ability. Business awareness. Attitude. So let's break those down a bit further...
I want people who have some technical knowledge they can apply to solve problems. It sounds like you have this. Note that I mostly don't need a specific skill because things are constantly changing in terms of technology so someone who has a solid technical background, can pick up a new technology, programming language, technique and be useful quickly is far more important. Remember that software development is largely a fashion business with developers picking up new languages because they are cool and fashionable rather than there being any real reason.
Business awareness is important because you have to remember that people use software and systems to solve business problems. So I need people who understand this and how the things they do might help (or hinder) a business to do this. I am not looking for someone who could run a business or who has in-depth business experience but understands why one approach or another might be a better fit for what the business needs, or why one technology might be better / cheaper / more suitable to be used to solve a specific business problem.
Attitude trumps both of the two above. I can teach people technical things. I can teach them business stuff too. But they need to want to learn, to roll their sleeves up and get stuck in and to be able to change when things change. The world isn't constant and tech is changing even faster. I want people who embrace the fact that every day is different and every client is different. They need to be able to work in teams and on their own. They need to be good communicators and NOT to be afraid to say things like 'I don't know, but I will find out'. This last one is what differentiates the really good people from those who have lots of qualifications but have no idea what they are doing :-)