Updated: Jun 8, 2020
Want to get programming but worried about a few myths?
Lets Debunk them!!
If you knew me at school, you might have never guessed I would go on to do a masters in physics. Learning to develop numerical methods to describe physical processes and implement them into code - its not easy. But that doesn't mean you can't do it. I was never the 'smart one' at school. Yet, here I am doing really clever stuff? Well I'll tell you a few secrets, and in this post, I am going to debunk some of the programming myths that made me nervous to start!
So, here are a few of the biggest programming myths I wish I knew before getting started!
I think had I known them sooner, I would have started sooner and been more confident in my learning.
1. You have to be a genius to be good at programming
No, you really don’t. All it takes is hard work, perseverance and motivation to keep going when it gets hard - because there will be times when it does. (when these times occur, grab a cuppa tea, relax, and look back at it with fresh eyes, maybe even the next day, and I’m sure you will spot the mistake right away!). The truth is, software developers are no different to other humans. They just worked hard at it, as in any profession! Think of it this way, if you go abroad and don’t know the mother tongue, it is scary and intimidating and you will feel frustrated and lost, but with time and practise, you will learn the language eventually! The same thing applies when learning a programming language.
2. Some people are just ‘good’ at coding - I am struggling loads - maybe it’s not for me?
This is something I really struggled with at university, and something I had to confront later on when I really needed to have the skill. If there are people around you that are ‘better’ at coding, this is because they have been at it a little longer. I like to say, they are not better at it than you, they are ‘more experienced’. And with more experience of course you will get better over time. It’s OK not to be the best in the room, but as long as you keep learning and going, you will get there! I promise! Even if that means putting in a little bit more time than others in order to catch up - I’ve been there, and it’s hard, but looking back it’s so worth it!
3. You have to be ‘good at maths’ to be a good programmer
This is a huge myth and needs to be busted! Some of the best programmers I know didn’t take math further than at GCSE level. Yes, if you are studying physics and you need to automate some mathematical formulae for modelling a physical process, then you will need to understand the underlying maths of that process. But in general, you don’t need to be good at maths at all to be a fantastic programmer. You will need problem-solving, analytical and logical thinking abilities to learn programming and people who know maths might have gained these skills, but you don’t need maths skills to pick them up. Being a logical thinker is something you can learn to be. No one is born being good at any of this stuff! In addition to this, and for your piece of mind, there are tonnes of libraries and plugins available which you can directly use in your code instead of creating your own maths functions! We are lucky to live in a time where these high level languages have all the maths pretty much done for us! You just need to know the function to use it! Basically, programming is for everyone!
4. “I can’t afford it”
Yes you can, the internet is free!! This is another thing I didn’t realise until third year when we started the C++ coding course, and in reality, all they did was give us projects to force us to get started. The rest was down to us to figure out! There is an abundance of resources out there for you to learn to code, and many successful programmers are self-taught. I have attached a few sources to get you started in this blog post! Honestly, all you need is a book or internet access, and you can get started!
5. "My computer isn't good enough!"
This is one of the excuses I used at uni too - my 5 year old PC which was literally falling apart. It’s OK, you don't need the best computer in the world to start programming. If you are really worried about computing power and really serious about learning to code, install linux and use that instead, it is the most basic operating system and is a really nice place to start coding! But honestly, unless you’re building a mini supercomputer to run Monte Carlo simulations I think it should be fine!! Any script editor should be able to handle the program you want to run at the beginner stages!
6. One programming language is better than another
Coding is a tool, and depending on what you want to build, you will need different tools. This is the same for programming. All the languages are useful, but each one is specific to the type of project, or ‘job’ you want it to do.
7. Programming is so boring
One thing I thought, is that programming is super boring and has no creative flare at all. But the truth is, programming helps you be both artistic and logical when solving problems. IT teaches you the art of thinking and problem solving. To take a complex project or idea, and break it down into small manageable pieces, exploring different methods to handle each part. There is something very creative and enjoyable about this. You feel rather smug and clever afterwards. For example, there is no greater feeling after building something up from scratch, struggling with it for weeks and look back with the finished results and thinking “I did that”. So fun and very rewarding!
8. Writing code fast is the goal
This is certainly not true. In reality you will spend a good amount of time planning you project before you start to implement it into code - and this is really important, especially for physicists. Just because your program compiles and runs with zero errors, doesn't mean its doing the correct calculations. You really need to understand the project at hand and the underlying task or calculation before you start to implement it into a program. My advice, do it on paper first. Then implement it into code once you are confident you understand the logical flow of your to-be program.
If you are working on a project at university, then my advice is to plan ahead and get working on the code. Your supervisor/lecturer wouldn't give you a task that isnt achievable in the given time frame of the project. Make sure you use your time wisely, and don't leave it to the last minute! These projects take TIME!
This can also be said for other projects, which may not be physics related. Things will take a little longer than expected. But just remember, it will take as long as it takes. And that’s OK.
9. If my program fails it might break something
This one is not so much a myth but a fear I always had and it prevented me from just going at it and learning fast. I wish I clocked on a bit earlier that in the grand scheme of things, if your program fails, you can fix it. I want to stress the importance of failing. Failing fast tracks learning. My lab partner was an absolute boss when it came to programming, and he was never afraid to try new things. If it broke, he fixed it. And this is a really great way to learn. As long as you’re working on your local machine and aren't editing the main company website for example, you should be fine to try new things and fail at them (and if you did have the potential to actually break something, you will certainly know about it - so honestly, don't worry!)*. That big red error really isn't as bad as it looks! Trial and error is a really good way to learn, in order to figure out what works by doing. Nothing will break, and by failing we learn! *
* disclaimer: if you are unsure and are worried about actually breaking something, ask your supervisor/director and make sure you don't crash anything important and are in fact working on a local/separate machine!
10. You have to learn all the syntax
Again, I wish I realised this sooner. As with anything, sometimes being good at something doesn’t mean you can recall information like a robot, it means you know where to look, and when you find it, know how to apply it. Looking at thousands of lines of code from a single project is daunting. But I can assure you some of that was googled - probably most! You might think that you need to remember all the syntax in a programming language to be proficient at it. This is not true and trying to memorise the syntax will not help you. Your best friend is practise and patience. Once you get started, you will need to make use of the resources on the internet, such as StackOverflow, GeeksforGeeks, W3Schools etc. When learning to program, the most important thing is understanding the concepts - this is the part that requires work. Over time, you will naturally become more familiar with the syntax, and once you have done a few projects you will end up writing out syntax without even thinking!
11. I don’t have enough time!
You will always make time for things that are important to you. You don’t have to put in 12 hours a day of practise to become proficient at programming. Sometimes, slow and steady does really win the race. I watched this fantastic TedTalk, and how by ‘making marginal improvements’, is a realistic way of achieving our biggest goals. You only need to do the minimum, but as long as you are consistent and focused, you will get there.
There are plenty of great movements to be a part of, for example, 100 days of code, whereby you practise code for 100 days, even if it’s for an hour a day! But the 100 days ensures you keep at it and are consistent! If you really feel you don’t have enough time, maybe you don’t want it that much.
12. Programming is for men
Programming is for everyone and some of the first programmers and developers were women (for the record folks)!
I am so lucky to have met some amazing women in science and tech, but growing I never heard of them, and in the old movies, it was always the men that got the cool parts (yes, being a science geek is cool!) So here are a few amazing women that have done incredible things in computer science!
Ada Lovelace, The first programmer in the world! She was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the Analytical Engine.
Evelyn Boyd Granville: was the second African-American woman to earn a Ph.D. in mathematics from an American University. She went on to join US space technology laboratories, where she helped US space missions by studying rocket trajectories and orbit computations.
Edith Clarke: was the first female electrical engineer. She was also the first female professor of electrical engineering at the University of Texas at Austin.
Grace Murray Hopper: developed the first compiler for programming language.
Adele Goldstine: helped create the world’s first electronic digital computer.
Jean E. Sammet: developed FORMAC programming language, a variation of FORTRAN
Marissa Mayer; one of the earliest programmers in Google
Janese Swanson: American software developer, Swanson is famous for founding Girl Tech, a company for making technology more interesting to women.
These ladies are all influential programmers, and should inspire you to follow their footsteps!
13. You have to 'look' geeky to be a programmer
(or scientist for that matter)
And last but not least, lets drop the stereotypes people. Growing up, we watch movies where people in science and tech are depicted with glasses and baggy cardigans and 'preppy' clothes and maybe even had a lisp and couldn't socialise with others. I'll tell you a secret - that's just not a true representation of people in science or technology, and you don't have to follow it in order to be a geek! You can be a geek and have sheek ! Or whatever style you want! When I first joined university, I always asked people to guess what I studied, because I loved proving them wrong, and I kind of wanted to dis-prove their stereotyping and judgement. White girl with blonde/brown hair who wears 'urban-outfitter' style clothes, she must be an art student no? Here are just a couple of people I follow on Instagram who break all the stereotypes - and they are rocking it!
dev_girls: features loads of awesome girls in tech, from all walks of life to inspire you that anyone can do it and that tech (and science) is for everyone!
nicole.young: self taught developer and most stylish person on the insta.
codingblonde: Programmer, Stereotype Breaker.
Fig Oreilly: she's a NASA Datanaut (Data Scientist) and won Miss Universe Ireland 2019 🇮🇪.
girlknowstech: Masters Student in machine learning
herhelloworld: Microsoft Engineer
kixcodes: AI Student
codenbyte: Software Engineer
joeel56: Frontend Developer
tiffintech: Business owner in tech
theaigirl: AI Research Scientist.
Other amazing women and men in science who I love to follow!
starstrikensf: Astrophysicist and woman's health advocate
Daisy Shearer: PhD candidate in semiconductor spintronics, experimental quantum physicist
weekday_neuroscientist: Canadian gal doing her PhD at @uoft
astroathens: Model and Astronomer/enthusiast.
fit_life_physics: Scientist at CERN, PhD Candidate in High Energy Physics
thephdstudent: PhD Candidate for Cancer Research
airseasam: Atmospheric and Weather Physicist, worked at NASA as a Data Scientist.
I hope you enjoyed this blog post and just remember, its never easy starting something new, and even if some of these were true, you should never listen to anyone else and always follow your dreams!