Happy Last Day Of Our Class
Final Super Duper Q&A
- Open source contribution: bug reports
- Note: the final is due at 11:59pm Friday April 29. It was previously listed as due at 12:00am Friday, which is 24 hours earlier :)
- Optional 2 day Extension: You can choose to turn in your final by 11:59pm on Sunday May 1. Think of this as the “hard way out”.
If you do this, you’ll turn in another snapshot/update by the original deadline on Friday. Also, I’ll have higher expectations for all the details being right in your program. Aka the perfectionists’ special. - The above have been added to the Final description.
- Matplotlib on Cloud 9: first, install matplotlib with
sudo apt-get install python-matplotlib
then at some point in your programplot.savefig("filename.jpg")
will make a file locally. Run > Run With > Apache to see your image file. You could also download the image and view it locally- Apache is just for your convenience. You can assume your user (me) knows how to use the image file you’ve created. Print “filename.jpg created” or etc. Trinket users: we did all this for you :) - Quick intro to package managers:
apt-get
(ubuntu linux),pip
(python),easy_install
(old school python),gem
(ruby),bundler
(ruby),lein
aka Leiningen (Clojure),npm
(node),bower
(client side Web),brew
(Mac OSX) etc etc. Know and love them, but understand they’re copying a bunch of files and changing some system settings so you don’t have to. But if something goes wrong you need to know how they work so you can do surgery. Also, beware of conflicts between them! - For completeness, want to make sure you know about Virtual Environments in Python with
venv
. Makes some hidden directories that let you install only what you need for each project. Can be complex, but though of as the pro way to do a project.activate
anddeactiveate
scripts ‘turn on’ these mini environments. - For science: IPython/Jupyter notebooks. Code + rich text in ‘cells’ that are kind of like an ubertrinket for scientific code. Some people write journal articles in them.
Thank You!
As I said on the first day of class, I love teaching, and you’ve been an especially great group. Thanks for a great semester!
Please keep in touch on various social media. I use Twitter the most. Drop me a line if I can help or you’ve got a fun update to share: eah13@mac.com
Stay involved!
- Meetups & open source contributions are a great way to stay motivated and stay inspired
- RE Meetups: believe in the strength of weak ties! When you show up a second or third time you’ll be amazed at how much easier it is to break the ice.
- There are tons of great nonprofits doing good work for kids- share what you know!
- Kickstarters like this one are a direct way to improve diversity in our field.
- Be an ally for an underrepresented group!
- Think about how wider events like NC HB2 impact our field. Like a program, our field is yours; make it what you want it to be!
Keep silshacking!
Paul Graham has written that the way to win at startups is the same as the way to not losing - Don’t Die. In other words, the main criterion of success is whether you keep going. I think this is exactly analogous to success - whatever that means to you- in programming. You win the same way you avoid losing: keep going.
I’ve tried to make this class a safe and encouraging space for you to try lots of things and get messy. The real world isn’t a lot different except you’ll find spaces that will be more or less encouraging and, hopefully, over time, things get a little less messy. But it’s still just humans and code.
Just know that whatever role you want programming to play in your career, you can get there if you keep going. Things get way easier after liftoff, when your rate of learning becomes exponential. But regardless of your trajectory, you’ve found problem solving skills and attitudes, along with a significant knowledge of Python, that have equipped you to get out there and do real things. The Final and all the apps you’ve made are proof enough of that.
Project Updates
Last one of the semester. Make it count! You should have most of the functionality of your project done and be working on stretch goals or perfecting the details. If you’re not, use your group to make sure you’ve got a plan to catch up!