Learn How to Code: A Beginner’s Guide (Part IV-VI)

Part 4–6 (Finale): Myth Busters, Git, Starting Your Career, Advancing Your Career

“Unakosa asilimia mia moja ya mashindano usiyofanya.”

“You miss 100% of the shots you don’t take.” — Swahili Proverbs

Introduction

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 Busters

via giphy.com

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:

via giphy.com

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.

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:

Watch this crash course video to learn more about Git and GitHub.

Git Cheat Sheet

Check it out here

Command Line

A 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):

Software Development Life Cycle (SDLC)

The Software Development Life Cycle (SDLC) is a process software development teams follow to build a software. It involves:

  1. Requirements/Planning 📝
  2. Design 🎨
  3. Implementation/Coding 💻
  4. 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

Portfolio/Resume

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:

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 Craftsmanship
Videos🎥:
- Hackerrank: Cracking the Coding Interview Playlist
Practice/Learn📝:
-
Interview Cake
- Algoexpert
- LeetCode
- Educative.io
- 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

via giphy.com

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

Conclusion

via giphy.com

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! 🎉

via giphy.com

“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

iOS Engineer 👩🏾‍💻🇹🇿🇺🇸 | BSc in Computer Science

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store