Any views expressed within media held on this service are those of the contributors, should not be taken as approved or endorsed by the University, and do not necessarily reflect the views of the University in respect of any particular issue.

Informatics Student Tips

Informatics Student Tips

School of Informatics students give their tips on studying Computer Science and living in Edinburgh

Learning to Code

Reading Time: 3 minutes

As an Informatics student, having a strong programming ability and knowing how to efficiently learn new languages is essential to success in later years. Here are some tips on how to approach it in the beginning.

Start from Fundamentals

When learning a new language, it can be tempting to jump into a medium-difficulty tutorial or straight into a project. However, if you are just starting with learning to code, it is important that you understand the underlying programming patterns that make up your language. 

  • Make sure you understand loops, if-statements, and variable assignment thoroughly
  • If you are learning an Object-Oriented language – refresh on Classes and Objects as well as OOP Concepts
  • If you are learning a Functional Language – refresh on functions, recursion, list comprehensions, maps, zips, and other Functional Programming (FP) Concepts

Once you understand the core concepts of programming paradigms, they become transferrable across languages which makes the burden of learning a language much lighter.

Book Recommendation

A really useful book for learning to code is ‘How to Write Good Programs: A Guide for Students’ by Perdita Stevens. Perdita is a Professior at the University who lectured the first year course on Object-Oriented Programming when I was in first year. Her book provides guidance on testing, debugging, and documentation as well as student-specific tips about scoring good grades on programming assignments.

Book – How to Write Good Programs: A Guide for Students

Practice Projects

Making small practice projects is my favourite way of learning a new language. Gaining hands-on experience is crucial to becoming fluent in that language. These projects do not need to be complex or impressive. As long as they challenge your current ability, then they are perfect. 

Some starter project ideas that I used 

  • Make a 2-player game of Connect Four 
  • Develop a discord bot with Discord.js 
  • Automate a process 

Book Recommendation

If you are looking for further inspiration for project ideas in Python, I would recommend reading ‘Automate the Boring Stuff with Python’ by Al Sweigart. This book has some really interesting projects ranging from Pattern Matching with Regular Expression to Image Manipulation and GUI Automation.

Online Book – Automate the Boring Stuff with Python

Enter Hackathons and Coding Competitions

Hackathons are social gatherings where you get into groups and have a set amount of time to develop some application, usually centred around a theme or proposal. Not only are hackathons a fantastic way to make connections in industry and meet other programmers, they also challenge you to learn new technologies. 

Edinburgh is home to many hackathons. The Edinburgh University Computer Society (CompSoc) organises a yearly ‘Hack the Burgh’ hackathon for students across the country and industry leaders often appear at these events. Keep an eye out for different Hacakthons – usually big-tech companies organise them annually. Some hackathons I have previously been apart of are:

  • Microsoft Student Hackathon
  • Huawei Data Science Hackathon
  • UpReach Tech500 Hackathon

(Plus, there may be a sweet prize at the end 😊) 

List of upcoming hackathons

Deepen and Apply Your Knowledge

Once you are becoming more comfortable with programming and the language of your choice, challenge yourself further to gain a deep understanding of the language and its features.  

  • Look at most used standard libraries and documentation 
  • Research applications made with these technologies 
  • Scroll through Stack Overflow and respond to people’s queries 

The biggest misconception about Computer Science is that a degree in Computer Science is a degree in Programming. This is equivalent to saying a degree in Medicine is a degree in operating instruments. Programming is a tool used by Computer Scientists to apply their knowledge. Throughout your Informatics degree at Edinburgh University, you will be learning a lot of theoretical content. To truly master this theory content, try applying it in some program. Not only will this help you understand the theoretical concepts but also develop your programming ability.

Unfortunately, you cannot become a Software Engineer overnight. Programming is a skill and, like any other skill, takes time to be developed. Practise consistently and you will get there!

Website Recommendation

A very useful website and YouTube channel containing detailed programming videos is linked below. I would recommend using it to expand your programming skills.

Website – FreeCodeCamp


Blog post originally written by Donald Jennings, Informatics Communications Intern 2022.

Edited by Dimona Videnlieva, Informatics Communications Intern 2023.


1 reply to “Learning to Code”

  1. Pingback: Blog Navigation – Informatics Student Tips

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


Report this page

To report inappropriate content on this page, please use the form below. Upon receiving your report, we will be in touch as per the Take Down Policy of the service.

Please note that personal data collected through this form is used and stored for the purposes of processing this report and communication with you.

If you are unable to report a concern about content via this form please contact the Service Owner.

Please enter an email address you wish to be contacted on. Please describe the unacceptable content in sufficient detail to allow us to locate it, and why you consider it to be unacceptable.
By submitting this report, you accept that it is accurate and that fraudulent or nuisance complaints may result in action by the University.