I’m currently living in the US and taking up Master of Science in Computer Science at City University of Seattle. I’m an international student holding an F1-visa (student visa), which means i’m restricted to mostly studying at school and can’t get easily internships with the vast opportunities we have here in Seattle. Still, i have been making the most of my stay by being proactive in Seattle Tech Community by joining meetups, talks, and hackathons. Also, i'm busy trying to materialize my vision of building a learning and sharing community in my school.
Educational background: I have an undergraduate degree in Finance and have 5 years experiences working in the Finance Industry and had no background in tech.
I can gain employment after my schooling. However, i doubt that companies would hire someone as a developer without an experience in developing applications given that i will have a MSCS degree.
I’ve been interested in Coding Bootcamps for quite a while i could never do a on-site bootcamp as i am not allowed to take a long vacation for my visa status and also i’m working part-time in school. Still, i didn’t want to waste time and not enter a coding bootcamp to speed up my learning in software development. And while i was looking for a bootcamp, i was learning full-stack web development in freeCodeCamp. But i felt i needed more…
After a few months, i found Firehose Project and enrolled in their online coding bootcamp. Why? I checked for reviews and I choose it simply because it includes a weekly 1-on-1 mentor session for 22 weeks. I did gain a lot of skill in full-stack web development. Created a lot of cool apps:
- Nomster — Yelp clone
- Flixter — Video streaming platform
- Grammable — Instagram clone built in test-driven development
- Todoster — Todo list application with dynamic content
The truly enriching experience was the mentor sessions. Each session i would learn tips and tricks that helps you think and work as a software developer. My mentor would always be crazy optimistic for me to be a great software developer and that what really inspired me to push forward as there were times i felt down and did not feel like a person who could be a software developer.
Pro Tip: Please ask questions early and often if you don’t know how to do something.
Since day one. There have been several times that this phrase has been used by my mentor. When?
- Working on a problem and being stuck for more than an hour.
- Forgetting to ask questions when something is ambiguous.
Reminders before asking questions:
- Try fixing the problem first.
- Google before you ask.
- Read the official documentation first, before using Stackoverflow.
Skills leveled-up: asking the right questions and googling for information and answers.
Pro Tip: Read instructions two times or more.
This happened to me more than twice. I was building a simple program for image blur challenges. I ended up coding the solution for the 1st image blur challenge when the instructions clearly said: for the first challenge, please copy the code. I was so embarrassed with my mentor for this.
- Read, read, read.
- Understand, understand, understand.
Skills leveled-up: reading instructions correctly.
Pro Tip: Only push working code.
Working on my individual project with my mentor. I thought it will be like: hey, here’s the code i’m working on so far. Turns out, i’m responsible for submitting a working code with tests. He was training me already on how to work in real software development team.
- Write your test first.
- Don’t submit broken code.
- Connect your PR to an issue.
- Always be detailed and clear in your comments.
I’d stop babbling here and instead list more awesome tips i got =) :
On application development and code management:
Pro Tip: 1st rule of application development. MAKE IT WORK.
Pro Tip: Focus on the small functions with single responsibility. 5 lines or less.
Pro Tip: Refactor your code.
Pro Tip: Smaller commits are way easier to reverse with git.
Pro Tip: Commit and push, early and often.
Pro Tip: Quality trumps Speed.
On working with teams:
Pro Tip: A good team is a team that listen to others and not dismiss what others have to say, others have a voice.
Pro Tip: Bad team is people working in silos.
Pro Tip: At least 1 other person should test/review before PR.
Pro Tip: Help person A’s work, not work on person’s A work.
On working with feature branches:
Pro Tip: Feature branch should be derived from master branch.
Pro Tip: Always check if newly created feature branch has the latest working code with
git pull master.
Pro Tip: add and commit before going to a different branch
Pro Tip: Don’t need to worry on other branches, focus on your branch.
Pro Tip: If you messed up your local branch, raise your hand and ask for help.
On working with users stories:
Pro Tip: user story is just high-level framework.
Pro Tip: Detailed implementations is bad for user stories.
Pro Tip: Do the users stories in order or tasks will spiral out and be unorganized.
Pro Tip: One should have at most 3 user stories in progress.
Pro Tip: Multiple PRs outstanding. Not Good.
Pro Tip: Always write isolated tests.
Pro Tip: Stay away from using global variables in both test and implementation code.
Pro Tip: Putting test logic in configuration file is bad.
Thank you for reading my blog. =)
It’s always awesome to share helpful stuff. I leave you with a question:
What awesome tips have you learned in your software development journey?