Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialHemant Chaparala
136 PointsBest Learning Sequence for Medical Student
Hello Everyone,
I am a medical student in the midst of a research year at a major academic center. I first became interested in programming for the automation of some of our clinical research workflows and for data visualization. I have some experience with R, but no other languages.
I would like to know which language/sequence of languages would be best suited to my situation. From my reading of advice elsewhere, I have determined that Python seems to be a good first step. However, I'm not really certain where one goes from there.
I would appreciate any advice.
3 Answers
Sang Han
1,257 PointsScipy
I have a similar background, so some helpful suggestions would be that after spending time with Python fundamentals to go look into the Scipy stack. Scipy is a collection of Python libraries which cater to the scientific community.
Within the scipy stack are many different modules and it can be a handful to learn. However, the packages which are the most important are as follows.
Numpy
- A fast vector library for doing numerical computation similar to matlab.
- Numpy is fast, a lot of the packages actually utilize compiled fortran code
- This package is the basis for most of the scipy stack, so learning is highly highly recommended
Matplotlib
- Publication quality 2D/3D plotting library.
- Very comprehensive.
IPython
- IPython is on the outside an alternative python shell (like calling python from the command line)
- IPython is also a notebook that runs in your browser and allows you to run Python code and collect research notes in a nice tidy manner.
- Much like an electronic laboratory notebook, but it is also a great way to share code and research with your peers and advisors.
- There have been entire publications written to Nature using solely the notebook.
Pandas
- Pandas is a high level data analysis package of data structures, very similar to R.
Installation
In order to get up and running with all these packages installed used to be a real hassle (like compiling fortran libraries... yuck), but lately you can just install a complete distribution which already has these libraries installed.
There are several different distributions available, but the one I would recommend and IMHO is most full featured is the Anacondas Python Distribution.
Addendum
You'll have a choice between Python 2 and Python 3 (2.7 and 3.4 to be exact). Although there is some tension within the community (people don't want to upgrade because it's hard), I would suggest 3.4.
There might be some occasions (okay maybe a lot), where code was written with only Python 2 in mind, but you don't want to be stuck in same boat, so even though there might be some headache now, you'll be saving yourself in the future by learning Python 3.
Hope that helps, and good luck with the last few years before internship ;)
Stone Preston
42,016 PointsPython would be a great first step. It has a simple syntax and is used a lot in the scientific world. Follow the Learn Python Track and it will take you though all the courses in the suggested order.
Nsiak Attah
6,068 PointsHemant,
Python is your best bet. Subtle for beginning programmers and powerful enough to accomplish any task as you grow in your programming.
It will also lay a very good foundation for you to advance to any other program or development task