Parul Baweja is a policy analyst turned software engineer: she started learning to code to streamline and automate processes in her policy work. She completed Hackbright’s Full-Time Software Engineering Program in March 2018. Now, she’s looking to learn and apply her knowledge to eliminate operational inefficiencies and improve infrastructure. She shared her thoughts on Hackbright, work-(study)-life balance, and her programming and project development.
I finished my bootcamp, Hackbright, at the end of March. With some time to reflect, I wanted to share thoughts about my experience, pro-tips, and next steps. Enjoy!
Why I chose Hackbright
For its emphasis on balance and community — Hackbright 100 percent lived up to the expectations I had in these two areas.
In terms of my personal work habits, I knew I needed structure, which Hackbright provided during the day. Basically, I needed someone to point me in the right direction day-to-day and teach me about practical tools. In the evening, I felt free to Google away about whatever sparked my curiosity, like concurrency or playing a CLI game.
Hackbright is a bootcamp for women and has a mission to #changetheratio in tech. Hackbright impressed me with its ability to cultivate and sustain a supportive community. Now that I’ve completed the program, I know it’s true from firsthand experience: post-bootcamp, I’ve seen or chatted with a fellow Hackbrighter almost every day. The sense of community doesn’t stop there — I feel incredibly lucky to have friends, colleagues, and fellow SWEs that will share resources, teach me a new concept, and empathize with me.
How I self-studied
Hackbright’s curriculum covers getting comfortable with Python, web development tools, computer science fundamentals, and algorithms. As I mentioned, though, I spent my evenings with Google. So, what was I searching for?
I informally took CMU’s Systems course and learned a lot. Learning about low-level concepts and web dev tools concurrently offered a good mix of activities to keep me entertained. Later when I implemented WikiRacer, I had an idea about how Python makes system calls for new threads or coroutines and how my program might actually get broken down into assembly language.
Implement every data structure. Seriously. If you implement a basic linked list or tree or heap, you’ll be able to understand more complicated problems that involve them.
I would recommend white-boarding/writing and coding these implementations so you feel confident in both mediums .
I filtered HackerRank and LeetCode by ‘Algorithm,’ started with easy, and made my way up. It helped me get comfortable with these popular coding challenge interfaces and learn new concepts along the way.
Don’t Google this — just make a playground directory for yourself. This is where you can write up random scripts or programs to check things out. The more you tinker, the more confident you get.
How I Approached My Project
At most bootcamps, students learn a bunch of tools and then their learning culminates in the form of a project! Projects are fun — it’s your chance to have full ownership of your tasks and schedule.
Think in terms of MVPs
Focus your attention on one particular problem at a time. My project was to build a job search management web app — instead of using Google sheets, I could use this tool. Take a look at my MVPs:
- Learn to use React. I spent 3–4 days trying out tutorials to get comfortable
- Build a form that allows users to submit information about a job application and view a table with all relevant information
- Use Material UI (a React component library) to enhance my current MVP
- Flesh out in-line editing feature
- Use the NewsAPI to curate articles for companies
- Refactor to abstract away common code and reuse a component
- Learn about passing URL parameters with React Router to reuse previous component for an archive page
- Create a Comparison tool so users can compare options
- Create an Analytics page with a charting library
- (Use a different charting library)
I could probably add more sub-MVPs, but you get the idea. Each time you add a new feature or apply a new technology/concept, make that a new MVP. The process of finishing each MVP was rewarding and I could follow my own workflow trajectory easily. If something went wrong, I could backtrace and still be ok.
Using a new technology
By new, I mean new relative to the curriculum — something that might require a steep learning curve when you are pressed for time.
- Understand their concern: instructors want you to succeed, so don’t take their warning as negative feedback. Instead, consider what all it takes to use ‘x’ technology and determine whether you have the bandwidth to learn and apply it.
- Give it a trial run: before using React on my project, I spent the week prior learning from online courses, reading the React docs, and asking my mentor for guidance. Provide yourself with as many data points as necessary to make an informed decision.
- Ask for help: ask anyone — your mentor, your friend, your friend’s friend.
- Be ok with putting the idea on the back-burner: sometimes, we just can’t do it all. That’s ok. It may not feel like it, but there is plenty of time to learn something new.
My Next Steps
I am so happy and grateful for the experience I had — for the community I now have. As I job search, I’m taking this time to continue learning and sharing my experience. Here are my next steps:
- Continue interview prep with Cracking the Coding Interview, HackerRank, LeetCode, etc.
- Get a job, hopefully.
- Try out Cryptopals — Based on the website, it’s a good way to learn a language. There are also clear instructions and sets of problems, so I can focus on the learning and problem-solving. I was thinking of doing it in Python, so I can feel really comfortable (almost an expert) in the language. Plus, I’ll learn something about cryptography and security.
- Discrete Math.
- Keep writing.
- Admissions Office (24)
- Alum (90)
- Blog (149)
- Career Services (25)
- Diversity (17)
- Engineering Advice (56)
- Hackbright Field Trips (24)
- Hackbright Mentors (21)
- Hackbright News (105)
- Podcast (2)
- Profiles of Woman Engineers (97)
- Recruiting & Hiring (15)
- Resources (34)
- Student Blogs (24)
- Tech (49)
- Thought Piece (19)
- Uncategorized (2)
- Video (20)