Five successful women in tech share their tips for first time coders
Despite there being many inspirational women in the history of computing, such as Katherine G. Johnson, Sister Mary Kenneth Keller, and Joan Clarke – to name but a few influential tech pioneers – women who code remain a modern day minority. So...
Why don't more women code?
This is a question asked by many in the tech industry, to which there is no one answer.
The lack of female coders is partly due to the fact that Computer Science isn't traditionally offered to girls in school. Instead, many who find their way into the technology industry stumble upon their STEM careers later in life – few set out with the aim of becoming a coder. For those who aren't lucky enough to chance upon coding and have not had the training early on, the world of code may appear impenetrable.
Doubting their ability to conquer an unknown skill is something that affects a number of females. For instance, a Hewlett Packard report found that its male employees tended to apply for a job or promotion when they met 60% of the qualifications, whereas their female workers would only apply if they met 100% of them. Rather than arguing in the interview that they could quickly master the areas that they weren’t proficient in, they made the decision not to apply in the first place.
This under-confidence is also seen in young girls. According to research by Code.org, female students report enjoying the organisation's CS Principles programming units more than the male students. Yet, despite achieving high test results in these subjects, the girls are still 11% more likely to rate them as "too difficult".
'Brogrammer' culture is another factor that plays a part here. The media perception of the industry perpetuates a 'techie' stereotype than needs to be dispelled. Doing simple things like updating recruitment adverts to remove words like 'hacker', 'expert', 'ninja' and 'rockstar' will slowly trigger a shift towards gender parity in the technology industry.
Women can code and having a female on your tech team is smart economics. Statistics reveal that women have a significant impact on the success of a tech company. Despite receiving 50% less venture capital funding, women leaders in tech are bringing in 20% more revenue than their male counterparts.
With this in mind, we caught up with five female thought leaders in tech to hear their expert advice for first time coders
Which specific coding language would you recommend for beginners?
Nakita McCool, Learning Success Lead @ Code Institute:
I'd recommend Python. It's a really powerful language but it's also perfect for beginners due to its readability. Python is intuitive due to the fact that its syntax is much simpler than other coding languages, as a first time coder you can get to grips with the language quite quickly.
This means that instead of spending lots of time learning/translating complex syntax, you can focus instead on writing and running code, which means learning by doing (rather than reading). To demonstrate this, I always recommend that beginners search how to run a 'Hello, World!' program in Python and do the same for another language – e.g. Java or C++. The code usually speaks for itself :)
Dr Sapna Negi, Data Scientist @ Genesys:
I would recommend Python for beginners.
Jennifer Cox, Technical Lead & CSM Associate Security Engineer @ Tenable:
- Android Basics
These are really different, but if you are looking for something that is even remotely practical for day-to-day things rather than jumping body-deep into something that requires more commitment, then these are the way to go.
Python code can be used for just about anything, from automatic forms to interacting with third-party software and removing the monotonous parts of a job. Android programming is just fun, and you can test it on your phone.
Caroline Fletcher, Lead Engineer for IBM Blockchain Platform Developer Tooling @ IBM:
Deepa Krishnamurthy, Data Scientist @ Klarna Bank AB:
When I began coding, I started with Java and it was one of my favourite languages to code. However, this changed when I started using Python. Besides being one of the most popular scripting languages these days for Data Science, I liked the simplicity of this high level language and how easy it is for beginners to learn it. For a beginner, Python also gives a good platform to progress from just coding to building a product out of it in a fairly smooth way. So, my favourite language right now is Python!
How many hours of practice a week would you suggest ?
If coding is something you want to pursue in your career, then I'd recommend 12-15 hours per week. It's tough but fun and, in my opinion, a worthwhile challenge. In order to reap the fruits of your labour (or learning), you really need to dive in headfirst and commit your time and energy. Imposter syndrome is really common in the industry, and I've found the only way to overcome it is to just keep on coding. Even if things don't make sense at first, you'll eventually reach the "a-ha" moment – but, to get there it takes patience and persistence.
If coding is something you want to do for fun or a skill you want to develop for personal reasons, then I'd recommend 4-5 hours a week.
Instead of hours, I would recommend solving a minimum number of programming practice questions/tasks, 1 per day starting from easy level, and then moving to medium and difficult, maintaining the pace of 1 per day. Your speed would improve gradually, and so you will spend same time solving an easy question initially as you would to solve a hard question later on.
I'd say a couple of hours each week. I think the easiest way to make a lot of progress fast is to think of something you want to make and work towards it. I found that just following a tutorial didn't help me really learn a language, i developed quicker by making something I wanted to and figuring it out as i went along.
Interesting question! My answer to this will NOT be a quantitative number. More than focussing on number of hours to practice, I would rather focus on trying out different problems and solving them using different techniques to get a hang of the language.
According to me, coding is all about these 3 things...
- How well we understand a problem
- Identifying which approach to code, keeping in mind different aspects such as "Does it solve the problem?", "Have all the edge cases been met?", not forgetting execution time, memory usage, etc.
- How we structure/generalise our solution such that it is possible to reuse the code. As a beginner, one should focus on practicing varied sets of problems and solving them in various ways to understand how there can be many solutions to a single problem, and master the art of how to choose the best solution out of all of them.
What would your top tip for beginners be?
Code, and keep on coding. Don't be scared to break things – i.e. break the code and introduce errors – it's the best and quickest way to learn. Work on coding projects that focus on a theme or outcome you have a personal investment in.
This could be a program, a game, an application or a website that helps you pursue a passion or solves a real-world problem. Try to build something purposeful - something that will make your life (or the life of someone you care about) easier or more enjoyable. Having a clear purpose keeps you motivated and focused when coding.
- Use good/trustworthy sources to learn and check the experience of instructors/authors
- In order to go fast, go slow. Do not go for quick tutorials, but start with the fundamentals (books or courses), give enough time to the core concepts
Get your hands on some finished projects. For me, it all started to make sense when I compared what I was learning against some completed code rather than starting from a blank page. It just made it more relatable.
My top tip would be to learn how to use a debugger to step through the code you have written to figure out what is happening. It really helps you to see what is wrong and where you need to fix it.
I'd also say if you have a problem you can't figure out, come back to it the next day. Sometimes, you spend too long staring at a problem and when you come back to it the solution is obvious.
My top tip is to be hands-on and consistent with your practice. As with any other skills that we learn, practicing different problems can give you the much needed confidence for coding. I started coding with a phobia of it and one thing that helped me overcome this was by practicing regularly. Once you get the hang of it, you will start enjoying it!
Another thing which I wish I would have done more when I was a beginner is participating in hackathons and code challenges. I was too conscious of failing in these platforms miserably, hence I refrained from entering these contests. But, I realised later that participating in a contest acts like a booster pack and only accelerates your learning pace. Not only does it make us good coders, but we also get an opportunity to learn a lot from other performers and their ways of coding. So, my tip is to practice and participate in coding contests to accelerate your growth!
Are there any courses/websites you would highly recommend?
- Stack Overflow
- Coding Bat
- Command Line Heroes podcast
- The 'Head First' series of books, eg. Head First Python
- Relevant Udemy courses with a high number of subscribers/fantastic ratings
- LeetCode and HackerRank are great for programming questions and practice problems
Udacity and Pluralsight are great for short free and low cost courses. For Python, I dug around a lot and found this particular YouTuber very good: Code With Mosh.
Take a read of our article '14 Female YouTubers Closing the Tech Vlogger Gender Gap' to find out more
There are many MOOCs (massive open online courses) these days, which aids with good tools and techniques to learn to code. For example, Coursera, Code Academy, etc.
For coding challenges, I would recommend HackerRank, Project Euler, and CodeWars.
There's still time left to join these female tech innovators at Ireland's top women in tech conference. Book now for Women in Tech Dublin!
Nakita McCool, Learning Success Lead @ Code Institute
'Hackathon: Learn to Code for Social Change' at 14:10 on 13th September.
Dr Sapna Negi, Data Scientist @ Genesys
'Machine Learning & Deep Learning – Steps Towards True AI' at 15:20 on 12th September.
Jennifer Cox, Technical Lead & CSM Associate Security Engineer @ Tenable
'Changing How We Think about Work/Life Balance' at 14:45 on 12th September.
Caroline Fletcher, Lead Engineer for IBM Blockchain Platform Developer Tooling @ IBM
'Blockchain Development Made Easy' at 12:40 on 13th September.
Deepa Krishnamurthy, Data Scientist @ Klarna Bank AB
'How to Personalise Your Purchase Experience Using Machine Learning' at 14:45 on 13th September.
You can follow us on Twitter, LinkedIn, Instagram or Facebook to keep up to date with everything Women in Tech World Series.