Want to Learn to Code? Start Free Today!

Anna AkullianAnna Eventbrite is the Program Manager of Part-Time Education  at Hackbright Academy in San Francisco. Prior to working at Hackbright, she was an engineer at Schoolzilla, a teacher, a researcher at Children’s Hospital, Oakland, and a Hackbright fellow herself. When she’s not at Hackbright, you can find her hiking in the Berkeley Hills or biking around the city.

Coding is powerful. It should be in the hands of smart and critically thinking people like you! It’s a super-useful skill these days, whether you want to become a software engineer, or are just living in the world today and want to understand the jargon and how things work. So many things that we have and use today are based on code. People and policy, not technology, are the solution to the world’s systematic problems. But smart people who learn and understand coding can go out into the world to create and do important things.

If you know you want to code, but aren’t sure where to start, here are three steps to get rolling on a sure-to-succeed path.

Step 1: Watch this video

Screen Shot 2016-12-02 at 10.47.10 AM

The Secret Rules of Modern Living: Algorithms is a 50-minute BBC documentary from 2015. It shows all the myriad ways, all the surprising places, that code now serves and influences our personal lives and society at large. Movies, travel, medicine — all these and more have been empowered by computerized math and logic we may not recognize when we look right at it.

You’ll come away much more aware of all the potential for understanding and building the world we are moving into.

Step 2: Spend 60 minutes with Python

Screen Shot 2016-12-02 at 10.51.41 AM

Sign up for free at Codecademy, which hosts a free hands-on Python course that takes an estimated 13 hours to complete. (Look for the link to the course catalog to find the Python course, and to see the many paths a coding career can take. You don’t need to upgrade to the paid Pro membership.)

Why Python? Because it’s one of the most in-demand languages today in many areas of computing, from recreational websites to serious data science. That’s why it’s also the highest-paying language to know for new engineers. Once you’ve learned one programming language, learning others is much easier. So you might as well start with the one that currently maximizes your opportunities.

To avoid feeling overwhelmed, start with just one hour of the tutorial. You’ll get an overview of concepts, and you’ll write and run your first simple Python program. That will give you a basic idea of how code works, and what a software development environment looks like.

Slow and steady learning will get you where you want to be. You’ll be spending a lot more time playing with Python — a lot, because coding is addictive rather than a chore. But before you do, there are some people you should meet.

Step 3: Meet your local community

Screen Shot 2016-12-02 at 11.42.47 AM

Don’t go it alone! Get out and meet local fellow coders, especially Python coders to start. For one thing, a support group will encourage you, reward you, guide you, and make you feel you are part of something real, rather than just sitting alone at your keyboard.

Second, personal networks are how most jobs of any kind are found today. The people clicking through resumes and applications won’t know and recognize your skills and potential. Real-life colleagues with whom you frequently interact will ignore the keywords on your LinkedIn profile and recruit you for your actual skills and personal traits they’ve come to know.

There are PyLadies meetings in cities around the world. There, women who work and play with Python gather to share ideas, questions, and work opportunities. Don’t worry about being seen as a novice at your first meeting. It’s OK. Everyone was on Day One once. Tell them you’ve done an hour of Codecademy and will be going home to do more after the meeting — unless they invite you for coffee first!

If there isn’t a PyLadies meeting you can get to, google “python meetup” for cities and towns near you. There are Python people everywhere.

Congrats, you’re coding!

That’s it! You’ve taken your first steps into a new life, and already have new friends with whom to make the journey. You’ll also find them — and others — online. Stack Overflow is where you can talk about coding. GitHub is the go-to place to peruse and share working Python (and every other language) examples with other programmers. Both are also places where managers looking to hire new engineers look for promising candidates.

Bookmark our list 7 Online Coding Resources For Beginners for more tutorial and help sites.

As you progress, you may want some classroom education. Hackbright offers a part-time Intro to Programming night course in San Francisco that runs five hours per week, for 12 weeks. You may find similar courses in your area.

Whatever you do, keep coding, whenever you have even a few minutes. Once you get rolling, it’s as addictive as Facebook. The more time you spend editing, running and debugging algorithms on your screen, the better — and better — you’ll get. Welcome to the club!

Hackbright Academy is the leading engineering school for women in San Francisco dedicated to closing the gender gap in the tech industry offering 12-week software engineering programs and night courses for women. 

8 Awesome Gift Ideas for Techies

We all have that person on our list that makes it impossible to get them some generic accessory or nicknack, their unique interests don’t exactly offer outsiders easy and abundant gift ideas. Here at Hackbright we can’t help you much with that uncle whose only passion is fly fishing or your super minimalist, hobby-less roommate, but we do know a whole lot of incredible technical women. So we reached out to our network to find out what exactly women hackers are hoping to receive this holiday season. Hopefully, their wish list will provide a little inspiration for anyone stumped by the girl geek on their list. (Or, feel free to indulge and just splurge on any of these ideas for yourself!)

Eye glasses

1. Computer glasses

Hannah Wright, founder of HR Partner, is personally hoping to find a set of Gunnar Intercept 24K Computer Glasses in her stocking ($79.99). “Not only are the Gunnar Intercept glasses made for high-resolution viewing, but they can also help prevent eye strain, making it much easier to stare at a computer for hours at a time,” she told Hackbright in an email. Several other women mentioned a generic desire for computer glasses too.


2. Arduino kit

If the technical woman in your life is focused primarily on software for work, maybe she would enjoy toying around with something more hands on for fun in 2017. Australian developer Judith Gammie certainly would. That’s why she’d love to get an Arduino kit this year.

“As a developer, I spend my days deep in lines of code. I’ve always wanted to tinker with some hardware, which is why I’d love an Arduino kit,” she explained. “I could do some cool automation stuff with it, or even make a weird little musical instrument.” 

tinsel headphones

3. Awesome headphones

When we reached out to technical women via email and social media to see what they were craving one thing came up again and again — awesome headphones! Black Girls Code founder Kimberly Bryant is dreaming of “new stylish Tinsel headphones. As much as I love my Bose headphones they are not always the ‘cutest’ apparatus to wear and Tinsel offers a great, lighter, and more stylish option that I’m interested in giving a try,” she wrote us.  

Engineer Lori J. Williams meanwhile recommends gift buyers pick up a pair of AfterShokz Trekz Titanium headphones ($129.95), which she owns and loves. Lots of other ladies got in touch with a wish for an excellent pair of noise cancelling headphones. It seems you can’t go wrong with this idea.


4. Stitch Fix

Geek girls like to look stylish as the next woman, which makes Stitch Fix an awesome gift idea. The subscription personal styling service provides all the fashion without any of the hassle. “A personal stylist online who can save me trips to the mall on a busy schedule? I’ll take it,” adds Bryant.  


5. Dyson hairdryer

Similarly, Hackbright alumna, Cristina Pastelero, is hoping for a gift that combines a love of looking your best with an appreciation for fine engineering — a Dyson hairdryer. Though at $399 this combination of fabulous hair and great design doesn’t come cheap.



6. A flash drive

Looking for something more in the stocking-stuffer price range? A bunch of the women we spoke to mentioned they’d be thrilled to receive a great flash drive this year. Wright is specifically eying the SanDisk – Cruzer 32GB USB 2.0 Flash Drive ($29.99), calling it “a useful, extremely practical gift.” Founders Marketing CEO Kristi E. DePaul wants an Omars lightning stick ($33.99) “for external phone storage/file transfer anywhere and everywhere.”

Screen Shot 2016-11-22 at 2.48.57 PM

7. STEM inspired games for kids

Got a technical woman on your gift giving list who is also a mom? Then Codeship product manager Kelly Bowker has a suggestion: how about a Bloxels kit to introduce their little one to video game design? (This might also be a good present for anyone who is still a kid at heart). And as Hackbright VP Angie Chang points out there’s also “Goldieblox, Roominate and Hopscotch – all women-led startups helping the next gen of girls become future coders.”

Screen Shot 2016-11-22 at 3.02.15 PM

8. Empowerment in book form

Want to encourage the technical woman you’re buying for and provide her with some additional skills to take on the world? Then there’s no shortage of great books specifically pitched at empowering female tech leaders, such as Women in Tech: Take Your Career to the Next Level with Practical Advice and Inspiring Stories edited by Tarah Wheeler Van Vlack. The book mixes practical advice and inspiration from many leading women in tech. Lean Out: The Struggle for Gender Equality in Tech and Start-Up Culture by Elissa Shevinsky is another good option.

Chang also points to Go Against the Flow by Charu Sharma, calling it “really useful content for aspiring entrepreneurs.” Amazon describes the book this way:  “An innovative and ground-breaking new book” that “brings together wisdom from several established and up and coming women business leaders in sharing their candid and introspective insights on how to become a successful entrepreneur.”

What gift are you dreaming of receiving this holiday season? Let us know!

Hackbright Academy is the leading engineering school for women in San Francisco dedicated to closing the gender gap in the tech industry offering 12-week software engineering programs and night courses for women.

How To Win At A Collaborative Coding Interview

Ben NgScreen Shot 2016-11-04 at 2.31.11 PM is a software engineer at Etsy. He previously worked at Shift, enjoys studying distributed systems and mentors at Hackbright Academy. Follow him on Twitter at @_benng

If you’re interviewing for a software engineering position nowadays, one of the first steps in the interview process will be a phone screen. You and the interviewer will look at the same source code using a collaborative code editor like Coderpad. As an engineer for five years and a Hackbright mentor, I’ve been on both sides of the phone. Here’s my big-picture strategy for tackling these interviews, and some advice from experience.

Problem solving is messy. Embrace it!

“Are you going to charge in empty-handed, or carry a sword and a spool of string?”A good interview question will have a solution that isn’t immediately obvious — one that you aren’t expected to know or recognize immediately. Instead, you discover the solution by identifying and solving smaller subproblems, evaluating multiple approaches, and backtracking from failed attempts. Sometimes you’ll need to make a logical leap, and other times you’ll need to make incremental improvements.

Think of the interview as a labyrinth. There’s an unavoidable component of chance involved, but you can maximize your odds of success by having a strategy beforehand. Are you going to  charge in empty-handed and hope for the best, or are you going to carry a sword and a spool of string?

 Five Steps to Success

1. Work some examples manually

Don’t immediately start writing code. There are two good reasons:

  • You want to make sure your understanding of the problem matches the interviewer’s. Try to think of edge-case examples. For example, do you and the interviewer agree on what number the Fibonacci sequence starts with?
  • If you can’t do something manually, you can’t automate it.

The coding questions that you’ll get in phone screens are usually some form of “given this input, produce this output.” Work out a simple example. Then work out some harder ones. Think about edge cases in the input. What if the numbers were negative? What if the integers were real numbers?

2. Translate your examples into test cases

Print this out for your collaborative-coding phone session

A flow chart for problem-solving. Print it and follow it during your collaborative-coding phone session.

After you’ve worked through a few examples, you’ll develop an intuition for what inputs make the problem easy to solve, and what inputs make it difficult. The solutions for the harder cases tend to build on those for the easier ones, so you’ll arrive at a complete solution more quickly if you start by solving the simple cases. Get familiar with your language’s assert library so that you can quickly translate your worked examples into test cases.

3. Start working on a solution

Run your code against your test cases frequently. Get them to pass, one by one. This has two benefits:

  • You’ll demonstrate progress as each test case passes. The interviewer gets to see you methodically tackle a problem rather than flail around. Plus it’s good for your morale.
  • Should you cause an old test case to break — a regression — you’ll know immediately. That’s when the problem is easiest to fix.

4. Look for ways it won’t work

Once all your test cases pass, think of any other edge cases you may have missed. You have a better understanding now of the problem and the solution, so you may come up with situations where your code won’t work. If you do, go back to step 3. Your interviewer will be impressed with how careful you are, and how readily you admit to discovering flaws in your code.

5. Refine it

“Your interviewer will be impressed with how readily you admit to flaws in your code.”Once you’re confident that your solution is behaving correctly, it’s time to refine it; it’s rare to arrive at the optimal solution for a non-trivial problem on the first try. Analyze your solution’s time complexity, and see if you can do better. Common strategies for improvement are pre-sorting the input, using a special data structure, or using dynamic programming. Use your improved understanding of the problem to simplify your code — an elegant recursive solution might be obvious only in hindsight.

If you get a practical problem — like discovering the primary color of an image — you should talk to the interviewer about how you would operationalize your solution. In other words, what do you need to do before you can ship this code? Common topics are security, performance, scalability, testing, and documentation. For example, will your code work on extremely large input? What if a user uploads a Word document when you expected a jpeg image?

Challenges unique to phone interviews

The interviewer can’t see you

This makes it hard for them to gauge your progress. To combat this, you need to over-communicate what you’re doing, whether that’s talking or typing. Whenever possible, show your work in the collaborative text editor. But sometimes, you’ll get a problem that’s very graphical, and easier to think about on paper. For example, it’s far easier to draw a tree and work out a recurrence relation on paper. Tell the interviewer that’s what you’re doing, so they don’t think you’re spinning your wheels.

You can’t see the interviewer

No vision means you’ll be extra-sensitive to everything you hear. Don’t over-react to it.

  • If you hear typing, it’s not because they’re chatting with their friends or working on something else. A good interviewer will be constantly taking notes; they want to capture exactly what you say and do, so that they can make an objective decision later.
  • If you hear a sigh, it’s probably not because of you. Your interviewer may have received an email that their lunch order was delayed.
  • If you don’t hear anything, it’s because they’re giving you quiet time to think. Don’t presume silence means they’ve written you off.

Using the environment

everything-you-think-you-know-about-thomas-edison-might-be-wrong (1)

“I have not failed. I’ve just found 10,000 ways that won’t work.” — Thomas Edison

Run your code often

Frequently make sure that your code compiles, and that your solution is behaving as expected. Unlike a whiteboard interview, you can actually execute code. So do it, and do it often. Very often — several times a minute isn’t uncommon. It’s a rookie mistake to write a large amount of code and then try to get it working at the end.

Got all that?

“As an engineer it’s not just whether you solve a problem, it’s how you do it. Collaborative coding interviews are a unique opportunity to showcase your technical skills. Don’t be intimidated by the stranger watching your every keystroke. Instead, practice the five-step strategy so you can methodically tackle difficult problems under pressure. Before your interview, refresh yourself on the challenges unique to phone screens, so you’re mentally prepared for what’s to come. Finally, don’t forget to use the environment to your advantage, by frequently running your code as you’re working on it. You’ll be a winner, because as an engineer it’s not just whether you solve a problem, it’s how you do it.