Start your journey as a software engineer - My experience from studying water resources and irrigation to software engineering
Start your journey as a software engineer - My experience from studying water resources and irrigation engineering to software engineering
Introduction
Software development is one of the highly in-demand as well as high-paying jobs in the world. If you search in-demand jobs or high-paying jobs in the world you should be able to see software programming ( or related terms in the results ). That's one of the advantages of being a software engineer.
Software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software.
Software engineering is the process of analyzing user needs and designing, constructing, and testing end-user applications that will satisfy these needs through the use of software programming languages.
Why software engineering
- Requires only access to the internet and a computer to learn ( free of charge ), there are a lot of resources online to learn about software development and you can start from zero computer knowledge to being a senior engineer.
A software engineer can work from anywhere around the world ( work from home )
If you love to work from anywhere this is a career for you, but it usually involves less time on the field and more time on the desk.
Higher Pay is one of the greatest advantages of Software Engineering.
In US the software engineer average annual salary is around $70k.
Most of big company founders were / are developers.
Elon Musk, Mark Zuckerburg, Bill Gates, Larry Page and many more billionaires started as developers and through software knowledge they created products and founded the biggest companies in the world. Most of the startups in today's market are being founded by software developers.
Why? Because in software engineering, sky's the limit, you can create small to biggest software which not only solves day to day problems, but also can make you a lot of money.
How to become a software engineer? From my experience.
Here is a short story of how I became a software engineer.
I studied water resources and irrigation engineering. I first started to use a computer when I joined college in my first year so I didn’t have a lot of experience in anything computer.
I bought my first computer the same year.
In the second year I was inspired by a friend of mine who was studying computer engineering to start learning programming. I started with C++ and I finished a certain online course and I wasn’t able to create any program from what I learned and gave up until when I was in third year when I was going through online articles and resumed to learning well, this time I started by choosing what my future will look like in this field, and what I wanted to create or be. So I picked HTML language and now I do software for a living. Am not there yet but I’m still learning to become better everyday.
From my journey I picked these steps to become a software engineer.
Be inspired
There is a lot of inspiration out there, for any field usually people are inspired by a certain factor such as money, hobby, people etc. Uninspired professionals usually tend to get bored since they don’t have any interest in the field they are in and end up underperforming.
Pick a field / what you want to achieve
Where do you want to see yourself working? What are you passionate about?
These are very important questions to ask yourself before you join any field.
Learn how to learn
After I restarted learning programming, one of the courses I learned was Learn how to learn from OpenClassrooms. From this course I learned a lot about how to learn anything with ease. One of the very important subjects is how you are learning, that defines whether you will make it or lose.
Start learning
Choose a mentor, or go solo, I went solo and I tell you that it was kinda a long way than having a mentor to guide you during the learning phase.
Choose a language - There are a lot of languages out there but select a language based on the field you chose, for instance if you choose a web development field then the language that you will need will be HTML, CSS, JavaScript.
Choose a platform or course which you will be following in your early days. Having a lot of courses in the same language as a beginner will cause a lot of mix ups and it's hard to know your progress.
Consistency and patience
Consistency is carrying out something the same way, or something staying the same as it's achieved in a particular way.
Being a good software engineer doesn’t happen overnight, there is a lot of hours , failures, struggles that you will go through to get there, it's easy to give up and you will never know if you would\d have made it if you gave up, you need to keep the same attitude, throughout your learning process
Speaking of keeping the same attitude you also need to be patient, Success doesn't come overnight. You don’t learn html today and create a perfect website like facebook tomorrow. Take small steps, don’t skip.
Don’t be afraid to ask for help, don't be stuck and stay silent, this is one of the reasons to have a mentor so you don't get stuck.
You already learned how to learn, you should know your learning style, don’t compare yourself to anyone, everyone has their own learning style, learn at your own pace and you will get there in the best way possible.
Every developer/engineer at one time doubted themselves on whether they are good enough. You are not alone. This is what is called imposter syndrome
There are multiple ways to deal with it such as
a. Talk about it with your mentor or anyone close to you
b. Don’t try to be perfect
c. Celebrate small wins
d. Be kind to yourself
e. Never compare yourself with other people
Every now and then you will be experiencing burnouts, burnout is a state of physical and emotional exhaustion. This reduces productivity and achievements. Several symptoms of burnout include feeling tired or drained most of the time, feeling helpless, trapped and/or defeated, feeling detached/alone in the world, having a cynical/negative outlook, self-doubt, procrastinating and taking longer to get things done and feeling overwhelmed.
How to deal with burnout?
a. Spending some time away from screen and blend in the real world,
b. Find a hobby
c. Try relaxing activities
d. Get some sleep
e. Seek support
Don’t stuck in tutorial hell (Learn by building and keep on building)
Most learners end up stuck in tutorial hell where they just follow one tutorial after another and they never get anywhere.
During my learning journey on each step that I learned something I would use that knowledge to add up on what I have already built and apart from gaining more knowledge I also got to have several projects under my name.
Celebrate small wins
Whenever you achieve something no matter how small it is, celebrate it, it's a win, celebrating wins. Don't get discouraged by failures and never be afraid to fail, you will only get better.
Don’t let others discourage you in any way nor should you compare yourself with anyone else. You should only compare your today’s self to your yesterday’s self. That should matter.
Starting a journey in any field is not easy but if done right it is worth it, I believe anyone can be a software engineer regardless of what they are or do now.
If you like this article there are more like this in our blogs, follow us on dev.to/clickpesa, medium.com/clickpesa-engineering-blog and clickpesa.hashnode.dev
Happy Hacking!!