Fulfill Your Ambitions with Open Source

Fulfill Your Ambitions with Open Source

Richard Monson-Haefel

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 startup 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 thou- sands 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 oper- ating system projects. If you want to work on music software, animation soft- ware, cryptography, robotics, PC games, massive online player games, mobile phones, or whatever, you’ll almost certainly find at least one open source proj- ect 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 play- ing 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 program- mer. 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, trademarks, and trade secrets.

??68 97 Things Every Programmer Should Know

?

???????????????Open source provides enormous opportunities for the motivated program- mer. 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. Sec- ond, 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 documen- tation out there on the tools you’ll need (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 excit- ing, 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.

时间: 2024-10-08 15:43:49

Fulfill Your Ambitions with Open Source的相关文章

ARTS Week 13

Jan 20, 2020 ~ Jan 26, 2020 Algorithm Problem 141 Linked List Cycle (环形链表) 题目链接 题目描述:给定一个链表,判断链表中是否存在环形.pos 代表链表末尾指向的连接到链表的位置,从0开始.若 pos = -1 则表示链表中没有环(注意:输入的只有链表本身,没有 pos) 举例: Input: head = [3,2,0,-4] (pos = 1) Output: true 3 -> 2 -> 0 -> -4 \ /

Installing TensorFlow from Source

TensorFlow Install Installing TensorFlow from Sources 目录 Determine which TensorFlow to install Clone the TensorFlow repository Prepare environment for Linux Install Bazel Install TensorFlow Python dependencies Optional: install TensorFlow for GPU pre

Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)

注解的处理除了可以在运行时通过反射机制处理外,还可以在编译期进行处理.在编译期处理注解时,会处理到不再产生新的源文件为止,之后再对所有源文件进行编译. Java5中提供了apt工具来进行编译期的注解处理.apt是命令行工具,与之配套的是一套描述"程序在编译时刻的静态结构"的API:Mirror API(com.sun.mirror.*).通过Mirror API可以获取到被注解的Java类型元素的信息,从而提供自定义的处理逻辑.具体的处理工具交给apt来处理.编写注解处理器的核心是两个

software source

whati is software source? software source is a houselive.it provide any softwares from sources.list. or it can be recognized as a address of server.we can assign this adress of server. so how to alter the address of server? so we have methods ,the on

source insight3.5中文乱码解决方案

source insight3.5中文乱码,网上看别人说改变宽字体.宋体等方法都不起效.根本原因是,source insight 3.5 不支持Unicode编码,所以导致中文的乱码,将文件转为gb2312编码即可正常显示. 转码命令: iconv -c  -f utf-8 -t gb2312  utf8FileName  >>  newGb2321FileName

在eclipse下,package,source folder,folder的区别

在eclipse下,package,source folder,folder都是文件夹. 它们的区别如下:package:当你在建立一个package时,它自动建立到source folder下,也只能建立在这个目录之下. source folder:存放java源代码的文件夹,当然也包括一些package文件夹,还可以包含其他文件.项目构建后,source folder里面的java自动编译成class文件到相应的bin文件夹中,其他文件也会移到到相应的目录下. folder:里面可以放入任何

Source Insight 使用积累

Source Insight 捷键及使用技巧 红色部分为我经常使用的部分 完成语法 :Ctrl+E 复制一行 :Ctrl+K 恰好复制该位置右边的该行的字符: Ctrl+Shift+K 剪切一行 :Ctrl+U 向前搜索 : F4 搜索选择的(比如选择了一个单词,shift+F4将搜索下一个) :Shift+F4 向后搜索 : F3 Shift+F3 : search the word under cusor backward F5: go to Line Ctrl+鼠标点击 :Jump to

CRC32 Source Code

/* The Quest Operating System * Copyright (C) 2005-2010 Richard West, Boston University * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Softwar

linux下shell脚本执行方法及exec和source命令

exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. bash shell的命令分为两类:外部命令和内部命令.外部命令是通过系统调用或独立的程序实现的,如sed.awk等等.内部命令是由特殊的文件格式(.def)所实现,如cd.history.exec等等. 在说明exe和source的区别之前,先说明一下fork的概念. fork是linux的系统调用,用来创建子进程(child