“Unakosa asilimia mia moja ya mashindano usiyofanya.”
“You miss 100% of the shots you don’t take.” — Swahili Proverbs
Hello ☺️👋🏾 and welcome to part 4…5… AND 6 of Learn How to Code! It’s been a while (life got very busy), so I’m finishing off the series in one post to make up for lost time. Thank you for keeping up with these posts, I really appreciate all the support 🥺. Happy Black History Month!🖤✊🏾 I hope you started the year off great and have been diving deeper into the coding world 💻🌍. In the last post, I went over some important computer science concepts such as data structures, algorithms, object-oriented programming, and operating systems.
In this post 📝:
In this part of the series:
- Part 4: Myth Busters, Git, Command line, Software dev cycle
- Part 5: Starting your career: Portfolio, Resume, Interview
- Part 6: Advancing your career, best practices, Dos and Don'ts
What we’re learning 📚:
Learn How to Code: A Beginner's Guide Series
[✅] Introduction and Getting Started
[✅] Coding 101: What Do All These Things Mean?
[✅] Data Structures, Algorithms, OOP, Operating Systems
[📍] Myth Busters, Git/command line, Software dev cycle
[📍] Starting your career: Portfolio, Resume, Interview
[📍] Advancing your career, best practices, Dos and Don'ts
Let’s begin! 🚀
In honor of Black History Month, check out this short article written by S.E.AT. Code about representation:
“When the root is strong, the fruit is sweet.” — Bob Marley
Part 4: Myth Busters, Git, Command line, Software dev cycle
“Whatever we believe about ourselves and our ability comes true for us.” — Susan L. Taylor
Myth #1: Coding is uncreative and boring
Boring?? 😮 Believe it or not, coding is not boring, but of course can be if you’re not interested in it. Coding also requires some creativity and soft skills to build technology that’s not only useful, but efficient and scalable. Since technology is always changing, there is always something to learn or improve — and people like programmers help shape the future. Learning how to code is also rewarding: building solutions to everyday problems, seeing your ideas come to life, or even overcoming challenges.
Myth #2: Programmers spend all day coding
Contrary to popular to belief, programmers do not spend all their time just coding. Think of what the process is like if you were to build a house for someone: do you just start building a house? There’s a process to be followed which might include: gathering requirements, planning, design, finding proper materials/resources, building the foundation, and so on. Similarly, in the programming world, software developers spend a lot of time planning and researching before actually coding — which may involve collaborating with other engineers, designers, QA, project managers, etc.
Myth #3: You need to be genius to learn how to code
If I got a penny for every time I heard this:
Seriously though, I understand how intimidating coding is. Like I mentioned before, learning how to code takes time and practice. What matters most is having a good foundation, and how you think and learn. I won’t lie, coding can get difficult at times, but don’t sell yourself short with what you can achieve. You’d be surprised at what you can do.
Myth #4: Learning __ language is the best
What language is considered the “best” is often confused with what’s popular or easiest to learn. Programming languages are always changing and new ones introduced. Plus, they have different uses to solve different problems.
What programming language should you learn first?
Thinking about learning to code but not sure where to start? One of the most common questions we hear is, "What…
Myth #5: You have to memorize code to be a good programmer
Quite the opposite. You will never be expected to know it all, what makes a good programmer is their ability to research and problem solve. Its helpful to start with learning basic syntax and coding concepts behind your language of choice. The more time you spend practicing with software development, the more you’ll naturally remember.
Getting started with Git
Before diving in, let me explain what
version control is. A version control system is a software tool that tracks changes to files you write to. There three different types of version control systems: local, centralized (client-server), and distributed. You can learn more about version control and its different types here.
What is Git?
Git is a distributed version-control software, that allows for any number of programmers to collaborate on software development projects. Git is accessed from the command line, and there are websites like Github and Bitbucket that provide tools to visually manage git code. GitHub is a popular software development platform where programmers can collaborate and also share their code with others. Some developers even use GitHub to build and host their portfolio (for free 😮).
Setting up Git
Follow these instructions on GitHub to set up Git and Github:
Set up Git
At the heart of GitHub is an open source version control system (VCS) called Git. Git is responsible for everything…
Start using Git on the command line
Git is an open-source distributed version control system designed to handle everything from small to very large…
Watch this crash course video to learn more about Git and GitHub.
Git Cheat Sheet
Command-Line Interface (CLI) is a text-based interface where users enter commands to interact with a computer’s software and operating system. A
Shell is a program that powers the command line by interpreting and executing the command input given. The
terminal is a graphical user interface (GUI) that allows for user to type their commands and in turn communicates with the shell.
These two websites provide useful cheat sheets for command line and bash (a type of shell):
Linux Command Line Cheat Sheet
A cheat sheet of the commands I use most for Linux, with popup links to man pages.
Bash cheat sheet: Top 25 commands and creating custom commands
The command line is something every developer should learn and implement into their daily routine. It has become a…
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) is a process software development teams follow to build a software. It involves:
- Requirements/Planning 📝
- Design 🎨
- Implementation/Coding 💻
- Testing 🧪
- Bonus: Learn about the
Software Testing Life Cycle (STLC)here
5. Deployment 🚀
6. Maintenance 🔧
Part 5: Starting your Career
“Try to find the power within you, and believe in it. you have so much power” — Kimberly Bryant
“If everything was perfect, you would never learn and you would never grow.” — Beyonce Knowles
There are many amazing tips and examples online of resume and portfolio examples that make good inspiration for your own. Showcase your amazing work on GitHub or build your own portfolio for recruiters to notice! LinkedIn is a great professional social platform where you can network, share your work, and even seek job opportunities.
Here are some articles I found that have useful tips:
How to write a great resume for software engineers
Compilation of tips from a Twitter software engineer for writing great resumes for software engineers.
How to write a Software Engineering resume (CV): the definitive guide (Updated for 2019)
While the debate still continues regarding the long term future of the “resume”, it’s still one of the most important…
Software Engineer Resume  - Example + How-to Guide
Now, before you can highlight your talents, you need to format your resume correctly. Your resume should be easy to…
Preparing for the Interview
“The most common way people give up their power is by thinking they don’t have any.” — Alice Walker
When preparing for the interview, I would start with learning computer science fundamentals and practicing coding problems. In most interviews, you will be coding on a whiteboard or on the computer, but I suggest practicing how to write code without a computer first. Don't rush this part of the process. When working on problems in practice and at interviews, focus on figuring out a (brute-force) solution first, make optimizations, then write and test out your code.
The book Cracking the Coding Interview by Gayle Laakman Mcdowell is a highly recommended book for interview prep, for a good reason. The book provides 189 programming questions with solutions, and also gives great guidance on how to prepare for the interview process. Check it out!
Here are some resources to help prepare for coding interviews:
💡 Coding Interview PrepBooks📚:
- Cracking the Coding Interview (6th edition)
- Programming Interviews Exposed (4th Edition)
- Daily Programming Problem
- Head First Object-Oriented Analysis and Design
- Clean Code: A Handbook of Agile Software CraftsmanshipVideos🎥:
- Hackerrank: Cracking the Coding Interview PlaylistPractice/Learn📝:
- Interview Cake
- Hackerrank Interview Preparation Kit
- GeeksforGeeks interview prep
- Grokking the System Design Interview
- University of San Diego: Mastering the Software Engineering Interview
At the Interview
“If you don’t have confidence, you’ll always find a way not to win.” — Carl Lewis
The coding interview process can seem scary and difficult to get through, especially as a first-timer. When I started coding interviews, I always thought that I had to write the perfect code in order to get the job. I quickly learned that interviewers evaluate a lot more than whether or not you can code the most perfect and beautiful solution.
One piece of advice I have for coding interviews is to always ask questions (I know I sound like a broken record at this point lol). Also, try not to spend to much time focused on getting the “right” solution. Instead, I would treat these interviews as a conversation between you and your interviewer about how you are going to solve a problem. You can ask for specific examples or scenarios to get a better picture for the desired outcome, discuss trade-offs between different solutions, ask for any limitations or specific requirements, and lastly, don’t be afraid to ask for feedback along the way as you’re coding out your solution. In some cases, a coding question is purposefully phrased in a vague manner, because they want to evaluate soft-skills such as critical thinking, creativity, decision-making, communication, etc.
You may not always get the perfect answer, or even be able to finish writing your code. That’s okay, and is not a deal-breaker in most cases. You’re interviewing with an engineer who understands how difficult coding can be. Relax and do your best, these interviews can be great learning experiences. Always remember: all it takes is one yes :).
Part 6: Advancing in your career
“Do the best you can until you know better. Then when you know better, do better.” — Maya Angelou
Words of Advice
Now that you’ve landed your first job, don’t let the learning stop!
- Spend more time practicing your soft skills like task management, openness to feedback, communication, and problem solving.
- I would also continue learning about coding concepts, and even start learning new languages.
- Start following best practices for code structure, naming conventions, documentation, maintainability, code reviews, unit testing, etc.
- Start spending more time doing research, and ways to improve existing code
- Go through some of your old code, and rewrite it to see how far you’ve come
- Find a way to make an impact, you are unique!
Do’s & Don’ts
Do stay active and hydrated
Don’t stop learning and practicing code
Do always break a problem down
Don’t be afraid to ask for help if you’re stuck
Do take breaks when you’re tired (physically and mentally)
Don’t be afraid to share your thoughts and ideas
Do always seek feedback
Don’t be afraid to ask questions
Do things at your own pace
Do have fun
Don’t give up
Thanks for reading! ☺️ We’ve reached the end of the Learn How to Code: A Beginners Guide series! 🚀 I hope you’ve enjoyed the ride, and even learned some things along the way. I know with time and dedication, you will go very far. I’m cheering you on from a (social) distance. The sky is the limit! 🎉
“I always believed that when you follow your heart or your gut, when you really follow the things that feel great to you, you can never lose, because settling is the worst feeling in the world.” — Rihanna