I Will Become A Software Engineer
Ok. So I am not officially a software engineer YET. This may be the worst tech blog ever written but hear me out. I plan to record my progress until I am a software engineer. Wins and embarrassing fails. Links to the resources I use will always be posted at the bottom of the article. Feel free to ask questions and reach out for help. But let's figure this out as we go!
I don't have a computer science degree. My experience with computers leans more on the side of computer hardware. I disassembled my Playstation 2 and repaired it when I was 13. When I was 25 years old I taught myself how to build computers. I'm probably crazy. However, I was told that becoming a software engineer without a CS degree was possible. So I'm going to do it.
Last year was so difficult for me. My aunt and my dog passed away on February 3rd and February 4th, 2022. Then I lost someone who meant everything to me.
I don't think I've ever felt so sad. Depression is no joke. I could not focus without thinking about what happened and then one day I decided to be strong again even though I was still off. I don't know where the energy came from but the first thing I did was "change" my environment. I moved my furniture around and installed Linux (Pop OS) on my computer.
That was quite an experience. But It gave me quite a bit of confidence in knowing that I could learn how to use new software quickly and effectively. I took Linux and Git/Github Udemy courses made by the great Colt Steele. (Be careful how you google that name.) I would later learn that I was still not doing "well". But that's a story for another time. The next thing I did was resubmit all of my projects and learn where I was weak.
I learned about "Unix" and how to use the terminal and I even learned how to continue gaming with Steam Proton and Lutris. I like it a lot better than Windows now and even my mom uses it. I love the pop shop (app store). Unfortunately, every app is not found on there but I found a way to "install" images with a program called: App Image Launcher.
"Be Your Self"
I was playing the Miles Morales Spider-Man game (I'm in touch with my inner child) and there is a scene where he loses confidence in himself. His best friend reminds him that he can solve his problems. But he just needs to be himself and stop trying to be Peter Parker.
Fun Fact: Like Miles Morales, I'm also Black/Puerto Rican. Not that it matters because the best characters are the ones that EVERYONE can relate to. But this scene is something I needed to hear.
Everyone should be open to taking advice but we need to learn to make our own decisions because each of our journeys will be different.
I took part in a free coding boot camp called "100Devs" and while it was a great experience for meeting other aspiring software engineers and networking; I don't feel like I was ready for what I learned.
My layouts looked AMAZING on my computer screen. But once I began reducing the size of my browser EVERYTHING collapsed and I had no idea how to fix it. If a potential employer looks at my site and it looks horrible on their device then I've wasted my time and the project is pointless. The user should always be kept in mind when designing a web experience. That includes accessibility for screen readers.
So You Want To Be A Freelance Web Developer
The Gif above this text displays a quote from The Joker In Batman: The animated series:
"I'm Crazy Enough To Take ON Batman, But The I.R.S.? No, Thank You!"
Part of my homework in 100Devs was to find a client and design a site for them for at least $200. I tried with no luck. And then I realized this is illegal in my city when you do not have a business license. So as it turns out I was actually pretty lucky and didn't even know it. Not going to jail is WAY Better than getting money.
But it's not a bad idea If you do it the correct way. I contacted my local business service and asked questions. Then I got an application for a business license. I am not encouraging anyone to disregard 100Devs. I think it's a great resource and I plan on returning for the 3rd cohort once I become more skilled. But I am encouraging you to ask questions and to be critical of what you learn. Your future employer/clients are depending on your expertise.
Since I didn't have any tech experience, I thought it would be best to start freelance work so I began shifting my focus to that instead. It's a great way to fund my coding self-study and apply what I've learned while gaining experience and references. If I don't have a degree then I need to gain experience to stand out. Doing things the same way as thousands of other people going after the same job won't get me anywhere. I need to make sure that I stand out and that I can deliver responsive and accessible products.
Some Great Words to Live By:
"Never write a single line of code without understanding how it works"
" HTML is mostly responsive BEFORE you write a line of CSS."
"Design Mobile First"
"Use relative units to make your code responsive. Rely less on media queries."
Screen Reader Example:
Gnome Orca Screen Reader Used In The Video Above.
Not only is it easier to design mobile first and then apply media queries to create designs for larger screen sizes but according to Google Analytics - over half of website traffic is from mobile phones. Why wouldn't you design your site mobile first?
I have completed a lot of courses since I started my journey but I think the courses that helped the most are Kevin Powell's FREE Responsive Design Course and EVERYTHING Luke Ciciliano has written on freelancing.
I also learned how to write legible code. I realized that after a few months, I was unable to understand the code I wrote in my older projects. If this caused problems for me then this would certainly cause problems for any team I work with. I was able to pass FreeCodeCamp's Tribute Page project and keep it responsive with what I learned from Kevin Powell.
10 Things to consider before freelancing
There is SO much work that goes into freelancing. Here are 10 things you should consider:
Make sure you have a business license.
Applying for a sole proprietorship or an LLC.
Talking to lawyers.
Obtaining liability insurance.
Bookkeeping.
Creating contracts so that when the technology changes in 5 years and your site potentially breaks your client is not able to hold you personally responsible and sue you.
Creating business relationships that benefit both you and your client.
Having the funds to get started so you don't go into debt.
Creating a brand and having a plan to attract clients.
Using social media to your advantage (Yelp, Craigslist, etc.) to market yourself.
Think Like A Programmer
I would like to end this article by discussing the first chapter of a book named "Think Like A Programmer" by V. Anton Spraul. In the first chapter, he hammers home the idea that programmers should have the ability to break down LARGE problems and turn them into small solvable problems. The first riddle he used as an example was the fox, corn, and goose boat riddle. Imagine that you're a farmer that has a boat and you need to cross a river. You can only take one across per trip but If you leave the fox and the goose. The goose will be eaten by the fox. If you leave the goose with the corn, then the goose will eat the corn. See If you can solve it. The solution Is below the photo:
The solution is pretty simple. Take the goose across and leave it. The fox will not eat the corn. Then take the fox across and leave it, but be sure to take the goose back to the corn and then leave the goose. Take the corn across and leave it with the fox. Now you can return and take the goose with all 3 items across.
This completely changed the way I thought about everything. How I plan out my career or a project. I need to create a "system" to reach my goals. I don't have experience. So I will get experience. I will prove that I can learn, that I can solve problems and that I am a team player. Big problems aren't difficult to solve If you have a plan and can break them down into small problems.
I Will Become A Software Engineer.
-Keenan
I hope this blog will reach someone who is struggling and help them overcome the problems I had. I can't wait to look back one day and say this is the story of how I became a Software Engineer. Thank you for reading my first post!
Links/Resources
[Pop OS](https://pop.system76.com/)
[100Devs](https://leonnoel.com/100devs/)[Colt Steele's Udemy Courses](https://www.udemy.com/user/coltsteele/)
[Kevin Powell's Free RWD Course](https://courses.kevinpowell.co/conqueringresponsive-layouts)
[Luke Ciciliano's Ultimate Freelance Guide](https://www.freecodecamp.org/news/freelance-web-developer-guide/)
[How To Think Like A Programmer](https://www.amazon.com/Think-Like-Programmer-Introduction-Creative/dp/1593274246/ref=sr_1_1?keywords=how+to+think+like+a+programmer&qid=1690727593&sr=8-1)
[Steam Proton Database](https://www.protondb.com/)
[Lutris](https://lutris.net/)
[App Image Launcher](https://appimage.org/)
[Google Analytics](https://www.thinkwithgoogle.com/marketing-strategies/app-and-mobile/mobile-web-traffic-statistics/)