This Saturday when all the sport enthusiasts were running the Stockholm marathon, I was rushing to Spotify HQ at Birger Jarlsgatan, excited to meet all the ladies curious about programming and Python at the first PyLadies meetup.
PyLadies’ strive to promote Python programming language and programming in general through different social activities, workshops and study groups.The goal is to increase the diversity of the coding community and attract more women into computing. This is done by creating a friendly and welcoming group where we can learn from each other.
Lynn Root came to Stockholm to help us to start off. She told a bit about her own experience of starting the community of Python Ladies in the USA and
And if you missed the tutorial, don’t worry, try to go through it yourself: http://newcoder.io/ and reach PyLadies through an IRC channel if you have any questions.
I volunteered to help with the future events, so I hope we’ll keep this ball rolling and a great autumn of coding awaits.
Boys, don’t forget to check back for “PyLadies+friends” events when you can join our gang as well!
P.S. I was positively surprised with a very good organisation on the Spotify‘s side. Food was delicious (Italian buffe) with lots of vegetarian and vegan options, traditional Swedish fika pastries were even more impressive.
PyLadies got the whole floor with the kitchen and an endless supply of coffee. All the new coder might possibly need, right? 🙂
I recently had the pleasure to meet lots of fellow PhD students and post-docs that come to a point in their research when they realize they desperately need some computer programming skills. Excel just isn’t working when you have huge amounts of data from your experiments or when you are fishing for new patterns and motifs.
Everyone shares a similar story. They started off with a book or a tutorial on R or Matlab and it all just was so confusing they lost their patience, motivation and got depressed. First of all, of course, don’t give up! We’ve all been there trying to make this stupid computer read our mind and do what we want it to do. The key to learn to use programming in your research is to start off with baby steps and never lose curiosity.
Programming is not only a useful tool for your great science ideas, it is also fun!
Here is a strategy I propose to you, my dear fellow biologist, who wants to learn to code:
1. So, let’s quizz your skills a little bit. I’m assuming you do well in math and you sleep with a book on Statistics under your pillow. So we got that covered.
Now, do you know how to use the command line to check what files are in your “Documents” directory, for example? Or have you perhaps taken a programming course at school in any programming language? If so, skip to the next step!
Otherwise, don’t worry and enjoy the power of Khan Academyprogramming basics tutorial. It will make you more familiar with variables, comments, functions and all other basic elements you are going to have in any programming language you will use in your work.
Try to go through a fun exercise, how about drawing this tree:
The most important thing on this step is to learn how to learn things on your own. No one remembers all the commands by heart, but a good programmer knows where to find them! How to search for the function you need, how to debug your program and find errors, how to read documentation. Another important thing is to understand how a typical program you are going to write works. Say, you probably have your data in a file in some sort of format. Your program will need to read it, parse it into a representative data structure (what would that be? a table? a graph? a list of numbers?), then perform some analysis and output the result as a plot or another data structure. Keep it in mind when you’ll go through the course material.
Bonus points: you’ll finally understand what this nerdy guy from the Computational Biology department is talking about 🙂
A quicker alternative here will be to try CodeAcademy and start off with Python (i.e. now you can also move to step 3!): http://www.codecademy.com/tracks/python This is a great option if you want faster results and prefer interactive learning.
3. By know you should feel less afraid of code than before. Now it is time to pick your language!
You probably heard of R before. R is a statistical toolbox and a really impressive tool for anyone interested in genomics. I have yet to find anything as useful. Although, R might be tricky to start off with, as it can be really confusing for a beginner.
Therefore I suggest you start with Python. It’s dirt simple! I promise you will start doing cool stuff from day one. It also has a large community online and lots of ready to use modules and libraries. And no weird R confusion to deal with. You will deal with it later if you really need to use Bioconductor or plot lots of heatmaps 🙂
Check for more resources for learning Python here.
4. Now you might look around BioPython and decide if Python is a good choice for the problems you are facing: if you need to do heavy computing, sequence alignments, machine learning algorithms, – it most certainly is.
Although, if you just want to do some plots on your tabular format data every once in a while, cluster your experiments or do a PCA or if you want to enjoy all the public genomic data that is generously available on Bioconductor, it is time for you to master R!
Here is your go-to website that will get you started with the basics: http://tryr.codeschool.com/ Interactive learning for the win!
After that there is only trial and error method🙂 Don’t be afraid to ask your fellow bioinformaticians for help or search for your problem online!
More resources on learning R when you have basic programming knowledge:
Well, there are a lot of cases even if you use the same parameters, but here is one I faced.
Here I am, trying to plot the heatmap of my data using the standart heatmap function:
and then, with exactly the same parameters I run the gplots function:
and what do I see? the plots’ colors look completely different, like the data has been changed…
After some staring and debugging ( and thanks to @lundstrj’s awesome testing skills), here is what I found:
Even thought the documentation states that the default scale for the heatmap function is “none” if the matrix is not symmetrical:
scale character indicating if the values should be centered and scaled in either the row direction or the column direction, or none. The default is "row" if symm false, and "none" otherwise.
I’ve noticed that it actually defaults to “row” anyways. And wrong scaling can change your heatmap completely! So beware to scale by the unique experiments(on the rows in my case) to make the result more appearing. and don’t forget to add the scale parameter to the gplots function:
This is how the map looked like:
First, our team – A03, got stuck because we didn’t get any internet connection and the rest moved forward pretty quickly, as you can see:)
Then, the whole awesome software just broke and we were stuck again. But luckily there was a plan B! Old-fashioned way – challenges on paper and live interactions with judges from Spotify 🙂
Me and Jonas(our team’s backend) were really closed to the second prize, but not fast enough. The competition was tough I must say!
You can see the challenges we solved in our github repository. It was a pleasure working with Jonas, we had fun on the way and I learned a few new things both about JS and Python. And I would say those kind of events are really good to sort of test your basic programming skills, if you are in the beginning of your career.
I noticed that some of the more senior guys were quite bored with the challenges though. One way to improve it from my point of view is to formulate it according to the theme. All the geeks got so excited by the possibility “to escape from the alien space ship” using their programming skills. Why not build every challenge in the same manner?
…Create a page that illustrates the view from the illuminator with stars lighting up and fading away…
instead of just
…On mouse-click event create a circle that gradually grows in radius until it’s too big to be seen…
That will possible lead to less challenges but you could also time-box them and if a developer can’t manage on time – let him try another one.
Peter Svensson and the other organizers did well despite of all the troubles that occurred during this the first of it’s kind crazy space competition, so thumb’s up for that and I’m sure the next devnull will be even more awesome!
We all have these periods in life, when we are supposed to choose what to do next. who to be?
The major in college, the job position, the future goal in your professional life.
You know this HR people that always ask you “What do you want to do in 5 years?”🙂
And, God, how hard can it be sometimes to understand and analyze yourself.
What is it from the whole bunch of my interests, that I will be happy dealing with 8 hours a day, 7 days per week? What is it that I will be doing the best? Where will I achieve my full potential. And not the least important – get paid for it:)
There are no easy way to answer these questions.
What I’ve tried so far(from what actually helps):
Ask more experienced people for advice, like your supervisor at the University/College, parents, people you think are successful in what they are doing etc. Ask them, why did they chose this way?
Trying as many things as possible, broad your experience and analyze on the way. Which of these activities made me happy? Was I happy organizing the school event, is it fun to help people installing Windows?
Finding a role model. What people inspire you? What do they do? What story do they have? Answering these questions helps a lot to understand which path in life you should choose yourself.
So, when you have a clear picture of your future self, there will be only one question left – How do I achieve this?
It is one of this career orientation tests, but it is actually the first one from what I’ve tried that showed the results I can agree with. Maybe it’s because I’ve already did all of the above?:)
Anyway, here are some results I got:
You value an internship in an organization that combines a sound basis of logic and explanations with opportunities to express your feelings and sensitivities to beauty.
Your interests gravitate to:
You like to analyze objects using your highly developed independent thinking skills to create new knowledge or use existing knowledge.
You are technically proficient and oriented towards science.
You have strong academic skills and are seen by others as scholarly and often introverted.
You tend to rely on your intellectual and critical thinking skills to perform your work. You are more naturally reserved and introspective in your approach to solving problems and use your curiosity to drive original and complex developments. You prefer internships that are knowledge-based and value innovative thinking and abstract mental challenges. You like to collect and organize data that is used to solve intellectually stimulating problems.
I can advice it to anyone who is now unsatisfied with the job, wondering how to become more effective and such, always feel busy and exhausted.
Not everything there was useful for me, but I have been following some of his advices for a week now and already feel changes.
I don’t check e-mail 30 times a day now, I use blocking programs in my browser for facebook and twitter, I do the most important task before lunch or even earlier in the morning, I don’t think about work at home and always find a few minutes to read a book and have a cup of coffee. And it only helps to finish my daily “To Do List” 🙂
The book provides also a lot of biographical stories, humor and very easy-going.
Definitely, “must read” about personal development.
I was reading (very useful and inspiring btw) interview with Audrey MacLean, expirienced technologist and entrepreneur. Audrey says that to encourage girl to come to technical field we need more games made specially for girls, which yeah, can be useful, but in the comments I saw one opinion which I can prove on my experience as well.
This is not computer itself and games that leads boys to engineering and IT career and not what will lead girls into it.
Here is the comment from Vik.
Getting girls interested in computing doesn’t start with computers, as Audrey MacLean suggests. It starts with parents who direct you in the right path of academics, life choices, and do their best to get you into the best academic environments. My parents in India did that for me at all levels of my early years, and prepared me for admission to MIT. When I got there, I had never seen anything more powerful than a Casio calculator. I graduated in computer science and engineering, one of 100 graduates, went on start software companies, and now have a great career at a top Silicon Valley company. My parents insisted on a strong foundation of math and science and showed me which careers could make my life. Try that with your children first, you don’t need to buy them an iPad.
I’m totally agree with her, ‘cause this is how it happened with me as well. Although, I need to mention that influence of school teachers especially in math and physics can’t be underestimated.