It’s now a good few weeks back into term, now it is back to normal university life with lots of lectures, coursework and all that jazz. So here is another post reminiscing about the summer. It is going to be about my adventure in attempting to learn some programming.
I don’t really know why I want to learn to program. I think it was a combination of a few things: I thought it would be interesting, I know a lot of plant research uses computer programming and I think employers like it. For me it was probably easier to get started with than some, I do happen to have a boyfriend doing computer science which was very useful (I tried not to make too much use of him, but he was very helpful, which I must thank him for).
I decided (and was advised) to learn the programming language Python, this is probably the most used in the life sciences and is relatively easy to write in and understand. It can also be used to write a large variety of programs. A good start would be to learn the syntax (this is basically the grammar of the programming language, how things are written). I first did this by using a website called Codecademy. I really liked this way of learning to start with, they give you a lot of help but you still feel like you’ve accomplished something.
Although Codecademy was a great place to start, it doesn’t really go far enough, and they do kind of spoon-feed you a bit. The next way of learning I tried was to just practice programming, just to see what I could do. I started off by doing some of the programs on Project Euler. These are really short programs that don’t take too long and they are maths based. After I’d programmed a few of these maths problems I found several other mini-projects to try, like making a hangman game. These were good, but I was finding that I learnt the language quite well but I found it hard to think in the programmer mindset, I couldn’t really do the problem solving.
This was when I realised that it’s quite hard to be good at programming without knowing any computer science. I began to browse the free courses on computer science on the internet. There are some really good courses from lots of universities all over the world. I choose the do the Introduction to Computer Science and Programming course from MIT. It looked like a really interesting course, had a lot of opportunity to practice the knowledge through programming, and was taught using python.
The course covered lots of useful topics from algorithms and problem solving to using big O notation to figure out the complexity of a program or algorithm. It was all very useful in learning to program. What was really difficult were all the actual programming tasks set. They also had tests (exactly what you want to be doing in the summer).
I think a lot of people get put off learning to program because it seems a lot harder than it is to get started. I hear people saying “I don’t think in that way” (I said this many times during the course of learning how to program). Of course you don’t, your not a computer, but that shouldn’t stop you! It’s also to difficult keep up learning when it starts getting really difficult, just keep going and when you finally get the program to work it is so worth it. This image really sums up everything I thought when I started learning to program.
So I’m obviously a long way away to being the level of programming I’d like to be and the level needed to be useful. I’m really looking forward to continuing my programming journey in a computer modelling module at university next term. I’m going to approach programming (and life) in the future using the wise words of Nadiya from The Great British Bake Off:
*Disclaimer: hopefully none of the information in this is too wrong, if it is, I apologise, I do plant science, but do let me know*
Codecademy – https://www.codecademy.com/en/tracks/python
Project Euler – https://projecteuler.net/archives
Introduction to Computer Science and Programming from MIT – http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/Syllabus/