Fulfill Your Ambitions with Open Source
来源:互联网 发布:淘宝药品真假 编辑:程序博客网 时间:2024/05/21 17:40
Chances are pretty good that you are not developing software at work that fulfills your most ambitious software development daydreams. Perhaps you are developing software for a huge insurance company when you would rather be working at Google, Apple, Microsoft, or your own start-up developing the next big thing. You'll never get where you want to go developing software for systems you don't care about.
Fortunately, there is an answer to your problem: open source. There are thousands of open source projects out there, many of them quite active, which offer you any kind of software development experience you could want. If you love the idea of developing operating systems, go help with one of the dozen operating system projects. If you want to work on music software, animation software, cryptography, robotics, PC games, massive online player games, mobile phones, or whatever, you'll almost certainly find at least one open source project dedicated to that interest.
Of course there is no free lunch. You have to be willing to give up your free time because you probably cannot work on an open source video game at your day job — you still have a responsibility to your employer. In addition, very few people make money contributing to open source projects — some do but most don't. You should be willing to give up some of your free time (less time playing video games and watching TV won't kill you). The harder you work on an open source project the faster you'll realize your true ambitions as a programmer. It's also important to consider your employee contract — some employers may restrict what you can contribute, even on your own time. In addition, you need to be careful about violating intellectual property laws having to do with copyright, patents, trade marks, and trade secrets.
Open source provides enormous opportunities for the motivated programmer. First, you get to see how someone else would implement a solution that interests you — you can learn a lot by reading other people's source code. Second, you get to contribute your own code and ideas to the project — not every brilliant idea you have will be accepted but some might and you'll learn something new just by working on solutions and contributing code. Third, you'll meet great people with the same passion for the type of software that you have — these open source friendships can last a lifetime. Fourth, assuming you are a competent contributor, you'll be able to add real-world experience in the technology that actually interests you.
Getting started with open source is pretty easy. There is a wealth of documentation out there on the tools you'll need (e.g., source code management, editors, programming languages, build systems, etc.). Find the project you want to work on first and learn about the tools that project uses. The documentation on projects themselves will be light in most cases, but this perhaps matters less because the best way to learn is to investigate the code yourself. If you want to get involved, you could offer to help out with the documentation. Or you could start by volunteering to write test code. While that may not sound exciting, the truth is you learn much faster by writing test code for other people's software than almost any other activity in software. Write test code, really good test code. Find bugs, suggest fixes, make friends, work on software you like, and fulfill your software development ambitions.
by Richard Monson-Haefel
This work is licensed under a Creative Commons Attribution 3
- Fulfill Your Ambitions with Open Source
- Fulfill Your Ambitions with Open Source
- Wiring Your Web Application with Open Source Java
- DIY BROADCAST : How to build your own Internet TV Channel with Open-Source & other goodies
- open source ids with python
- Make your Windows desktop apps open source
- Open Source on Github: Your First Contribution
- Open Source on Github: Your First Contribution
- Building consumer products with open source
- Building Open Source libraries with Android NDK
- GraphLab Integration with Spark Open Source Release
- eoprocessing with Python using Open Source GIS
- Open Source Research and Study with GitHub
- MySQL: Your visual blueprint for creating open source databases
- 22 Open Source PHP Frameworks To Shorten Your Development Time
- (译文)Open Source on Github: Your First Contribution
- Does having open source experience on your resume really matter?
- 推荐书:J2EE™ Open Source Toolkit:Building an Enterprise Platform with Open Source Tools
- J2EE简介
- C# 红色警戒2无限金钱+电力负载 外挂源码示例
- 《C专家编程》--改变const变量的值
- 编译原理3大书籍
- 关于CentOS 5.4下上无线网连接内网的一点心得
- Fulfill Your Ambitions with Open Source
- 在Mac系统上安装Tomcat
- VC中_T、_TEXT和TEXT宏的作用
- The Golden Rule of API Design
- C#+ArcEngine开发笔记
- JQuery实战学习--在dreamweaver 8中配置Jquery自动提示
- MAC下安装与配置MySQL
- The Guru Myth
- Dynamo详解