Hello everyone! This is my first post on Dev.to, and I would like to share my experience and journey when learning about software development.
You can read the original article here: https://medium.com/@adityapurwa/hard-work-how-i-become-a-software-engineer-4bd6da9028fa
I get asked a lot about how I could be like what I am now.
“How could you learn programming so easily?”
“How could you be so good at programming?”
“How could you understand such problem?”
“Why are you so good at this and that?’
And such.
Most of the time, I would say, “keep learning”. Yes, its the truth.
My Journey Before Software Engineering
I was lucky to have a family that supports me. I have a brother who let me touch his computer and play with it. It was the good old days of Windows 98.
I would play with the screensaver (remember that pipe screensaver?), draw with paint, or play games.
Then there was this cool movie about hacker. Not that I know anything about hacking, but it looks cool. So with the computer turned off, I imagine myself hacking. Pressing that keyboard randomly.
Then my brother installed Windows XP. Even though I dont understand the difference between XP and 98. I remembered playing Rockman/Megaman game.
Then my brother moved to another city to study about design. When he got home, he brought a book with him, it was Macromedia Flash Tutorial.
I was 9 years old, and as a kid, seeing those flashy animations intrigues me. I learned to create moving sphere, quizes (remember Parampaa?), etc.
Its a whole new world for me, everything seems cool, until I encountered ActionScript. I don’t know what was that, why do I have to write it. I dont even understand the meaning of the script that I wrote.
Then my brother brought another book, it was about 3DS Max. I learned 3D modelling and rendering. I tried to render the dragon example from 3DS Max. It was an old PC with no graphic card, it took an hour to render it. Only to found that I don’t know how to specify the output of the render.
My father was a musician, so was my brother. I learned to play guitar, keyboard, and drum. That day, I imagine that I would be musician and be famous. Never in my mind, I imagine that I would be a software engineer.
I wrote several songs, formed a band with my junior high school friends. We performed on a local concert, it feels great to be famous.
The Pause
The musician life and the student life, is not a good combination for me. I feels like I am starting to do worse on my study. I am having difficulty learning math, and it was my last year on junior high.
I don’t remember exactly how, who, what, or when. But I know that I had to go the internet cafe, and type “Virtual Basic”.
Yes, “virtual”. I am thankful to Google for correcting me to “Visual Basic”. I dont remember how, but I feel like I have to learn programming. Especially when I was having problem with my math class. I knew programming could help me solve this math homework even faster.
That day, I paused my life as a musician and student. I’d go to school, learn what I can. When I got home, I would pack and ride my cycle to the nearest internet cafe. Spending my afternoon, reading through programming tutorials. I remember it was this website, https://www.vbtutor.net/vbtutor.html.
I spent most of my first time learning programming to develop a solution for my math homework. It was a simple program to solve algebra, calculate area, volume, etc.
Hard Journey to Software Engineering
I don’t have a strong math background, I don’t know anything at all about programming. My brother is a designer, my father is a musician. No one in my family that could provide me with a clue about programming.
I live in an isolated village. No internet at home, the internet cafe is 20 minutes away with my bicycle. I don’t have any friends who could help me on this subject.
I knew this will be hard, but not for a moment I hesitated that I can’t do this. I know I can, I prayed I can, I hope I can.
From that day on. I would go to the internet cafe, download few html pages of the tutorial websites, and practiced at home. With internet speed of about 35KBps — 75KBps, it took me many hours to download development software such as Visual Studio.
I would fail, there would be error messages that I don’t understand. Having no internet at home means I have to fix it alone, or wait until tomorrow to search about it on the internet.
Sometimes, I can fix it, sometimes I have to wait for tomorrow. I spent so many days reading tutorials. I spent so many days practiced.
But nothing beats the sensation of seeing my program runs. Every button’s on click event, every alert message visible, it makes me happy.
I encountered Object Oriented Programming. It was confusing. I signed for an evening class of programming. Only to found that the class teaches basics programming. Such as if statemenets, for statements, and something like that.
Luckily, the lecturer of the class recommended me to go to a vocational high school. The school is famous for having a good software engineering class. So I decided to go there.
I applied and got accepted. Even though the school already taught me software engineering related knowledge during class. I still can’t stop learning on my own pace. So I still spent my afternoon reading tutorials. Spent my night practicing my programming skills.
I eventually understand what OOP is all about. I learned about how framework works, how such library works, how part of my code works. I avoid framework and library whenever possible. Not because I hate them, but because I was scared, if I was in an environment without internet such as my hometown. What could I do?
That fears gradually fade, I moved to a city with better internet connection. I learned how to use certain frameworks to speed up my work.
I wasn’t born as a programmer, no one was. I didn’t spend 30 minutes reading tutorials and immediately understand. I spent years, learning and practicing. It doesn’t happen overnight.
So for any programmer who feels like they can’t do it. YOU CAN. The learning process is the most important experience that you will learn. Your failure, is as important as your success. Keep learning, keep practicing.
It applies to anything, not only on software engineering. You can be great because of your hard work, of learning, and praciting. It doesn’t matter whether you are passionate or not. Passionate people without hard work won’t do much. Passionate people do work hard, they just do it with smiles on their face.
I can be what I am now, because of my hard work.
Or, was it?
Would I be a software engineer, if my brother did not decide to teach me Windows 98?
Would I be a software engineer, if my family did not bought us a computer?
Would I be a software engineer, if my brother did not decide to bought me book of Macromedia Flash and 3DS Max?
Would I be a software engineer, if my lecturer did not recommend me to that vocational high school?
Would I be a software engineer, if my family did not choose to support me on the vocational high school?
Would I be a software engineer, if one of my colleague did not introduced me to a better company?
Would I be what I am now, if my brother, family, friends, and partner wasn’t here to support me?
Sometimes, I wonder. I could do good with hard work. But I would never do great, without my family, friends, and partner. Things that we take for granted, yet most impactful in our life.
I can be what I am now, because of my God, family, friends, partner, and hard work that will be easy. Because of them.
So, thank you. To all of you.
Top comments (2)
It's really heartwarming to see you take the time to write this motivation for other newcomers. What are your plans for the future, do or will you get a job in programming?
Even though I was expecting a "from coder to software engineer", your article appeared as a "from nothing to a coder" which still delivers the point you're making.
Thank you! It's really heartwarming to receive your comments too!
I am currently working as a front end engineer on a local startup, my plans is to keep improving my knowledge, experience, and career.
Being a coder to software engineer means learning something analytical instead of just the programming technique, with proper mindset and guidance, I believe everyone will be able to learn :)