- 浏览: 95136 次
- 性别:
- 来自: 海底
最新评论
-
e421083458:
请问,有没有json转table的代码?
Lua 生成 Json -
arust:
天地有情 写道请教大侠,编程成功后的.exe文件里可以直接操作 ...
一个美丽的发现wxSQLite3 -
天地有情:
请教大侠,编程成功后的.exe文件里可以直接操作加解密的功能吗 ...
一个美丽的发现wxSQLite3 -
icefire:
就是喜欢这样的。我就重来不设环境变量,污染我的环境。而且很早 ...
有必要设操作系统环境变量吗? -
arust:
昨天,fceu 在 ports 中的原有目录已经被移除,更新为 ...
FreeBSD 下玩 FC 游戏
10 types of programmers you’ll encounter in the field
Programmers enjoy a reputation for being peculiar people. In fact, even within the development community, there are certain programmer archetypes that other programmers find strange. Here are 10 types of programmers you are likely to run across. Can you think of any more?
#1: Gandalf
This programmer type looks like a short-list candidate to play Gandalf in The Lord of the Rings. He (or even she!) has a beard halfway to his knees, a goofy looking hat, and may wear a cape or a cloak in the winter. Luckily for the team, this person is just as adept at working magic as Gandalf. Unluckily for the team, they will need to endure hours of stories from Gandalf about how he or she to walk uphill both ways in the snow to drop off the punch cards at the computer room. The Gandalf type is your heaviest hitter, but you try to leave them in the rear and call them up only in times of desperation.
#2: The Martyr
In any other profession, The Martyr is simply a “workaholic.” But in the development field, The Martyr goes beyond that and into another dimension. Workaholics at least go home to shower and sleep. The Martyr takes pride in sleeping at the desk amidst empty pizza boxes. The problem is, no one ever asked The Martyr to work like this. And he or she tries to guilt-trip the rest of the team with phrases like, “Yeah, go home and enjoy dinner. I’ll finish up the next three week’s worth of code tonight.”
#3: Fanboy
Watch out for Fanboy. If he or she corners you, you’re in for a three-hour lecture about the superiority of Dragonball Z compared to Gundam Wing, or why the Playstation 3 is better than the XB 360. Fanboy’s workspace is filled with posters, action figures, and other knick-knacks related to some obsession, most likely imported from Japan. Not only are Fanboys obnoxious to deal with, they often put so much time into the obsession (both in and out of the office) that they have no clue when it comes to doing what they were hired to do.
#4: Vince Neil
This 40-something is a throwback to 1984 in all of the wrong ways. Sporting big hair, ripped stonewashed jeans, and a bandana here or there, Vince sits in the office humming Bon Jovi and Def Leppard tunes throughout the workday. This would not be so bad if “Pour Some Sugar on Me” was not so darned infectious.
Vince is generally a fun person to work with, and actually has a ton of experience, but just never grew up. But Vince becomes a hassle when he or she tries living the rock ‘n roll lifestyle to go with the hair and hi-tops. It’s fairly hard to work with someone who carries a hangover to work every day.
#5: The Ninja
The Ninja is your team’s MVP, and no one knows it. Like the legendary assassins, you do not know that The Ninja is even in the building or working, but you discover the evidence in the morning. You fire up the source control system and see that at 4 AM, The Ninja checked in code that addresses the problem you planned to spend all week working on, and you did not even know that The Ninja was aware of the project! See, while you were in Yet Another Meeting, The Ninja was working.
Ninjas are so stealthy, you might not even know their name, but you know that every project they’re on seems to go much more smoothly. Tread carefully, though. The Ninja is a lone warrior; don’t try to force him or her to work with rank and file.
#6: The Theoretician
The Theoretician knows everything there is to know about programming. He or she can spend four hours lecturing about the history of an obscure programming language or providing a proof of how the code you wrote is less than perfectly optimal and may take an extra three nanoseconds to run. The problem is, The Theoretician does not know a thing about software development. When The Theoretician writes code, it is so “elegant” that mere mortals cannot make sense of it. His or her favorite technique is recursion, and every block of code is tweaked to the max, at the expense of timelines and readability.
The Theoretician is also easily distracted. A simple task that should take an hour takes Theoreticians three months, since they decide that the existing tools are not sufficient and they must build new tools to build new libraries to build a whole new system that meets their high standards. The Theoretician can be turned into one of your best players, if you can get him or her to play within the boundaries of the project itself and stop spending time working on The Ultimate Sorting Algorithm.
#7: The Code Cowboy
The Code Cowboy is a force of nature that cannot be stopped. He or she is almost always a great programmer and can do work two or three times faster than anyone else. The problem is, at least half of that speed comes by cutting corners. The Code Cowboy feels that checking code into source control takes too long, storing configuration data outside of the code itself takes too long, communicating with anyone else takes too long… you get the idea.
The Code Cowboy’s code is a spaghetti code mess, because he or she was working so quickly that the needed refactoring never happened. Chances are, seven pages’ worth of core functionality looks like the “don’t do this” example of a programming textbook, but it magically works. The Code Cowboy definitely does not play well with others. And if you put two Code Cowboys on the same project, it is guaranteed to fail, as they trample on each other’s changes and shoot each other in the foot.
Put a Code Cowboy on a project where hitting the deadline is more important than doing it right, and the code will be done just before deadline every time. The Code Cowboy is really just a loud, boisterous version of The Ninja. While The Ninja executes with surgical precision, The Code Cowboy is a raging bull and will gore anything that gets in the way.
#8: The Paratrooper
You know those movies where a sole commando is air-dropped deep behind enemy lines and comes out with the secret battle plans? That person in a software development shop is The Paratrooper. The Paratrooper is the last resort programmer you send in to save a dying project. Paratroopers lack the patience to work on a long-term assignment, but their best asset is an uncanny ability to learn an unfamiliar codebase and work within it. Other programmers might take weeks or months to learn enough about a project to effectively work on it; The Paratrooper takes hours or days. Paratroopers might not learn enough to work on the core of the code, but the lack of ramp-up time means that they can succeed where an entire team might fail.
#9: Mediocre Man
“Good enough” is the best you will ever get from Mediocre Man. Don’t let the name fool you; there are female varieties of Mediocre Man too. And he or she always takes longer to produce worse code than anyone else on the team. “Slow and steady barely finishes the race” could describe Mediocre Man’s projects. But Mediocre Man is always just “good enough” to remain employed.
When you interview this type, they can tell you a lot about the projects they’ve been involved with but not much about their actual involvement. Filtering out the Mediocre Man type is fairly easy: Ask for actual details of the work they’ve done, and they suddenly get a case of amnesia. Let them into your organization, though, and it might take years to get rid of them.
#10: The Evangelist
No matter what kind of environment you have, The Evangelist insists that it can be improved by throwing away all of your tools and processes and replacing them with something else. The Evangelist is actually the opposite of The Theoretician. The Evangelist is outspoken, knows an awful lot about software development, but performs very little actual programming.
The Evangelist is secretly a project manager or department manager at heart but lacks the knowledge or experience to make the jump. So until The Evangelist is able to get into a purely managerial role, everyone else needs to put up with his or her attempts to revolutionize the workplace.
发表评论
-
使用YAJL格式化json格式字符串
2009-08-25 17:35 0YAJL 安装起来真麻烦 Getting and compi ... -
值得关注的键值数据库redis
2009-07-28 09:52 3364前一段时间搜索 key-value database 的时候 ... -
适合开发者使用的英文字体
2009-03-11 10:28 2936Bitstream Vera Sans Mono 以及他的衍 ... -
一个美丽的发现wxSQLite3
2009-01-09 11:00 13642“美是到处都有的,对于我们的眼睛不是缺少美,而是缺少发现”, ... -
Unix-Center 机器速度
2009-01-07 10:35 1895最近无聊的很,突然心血来潮想测试一下 Unix 体验中心几台 ... -
星之元素-Stellarium
2008-12-15 12:36 1296Stellarium 是一款非常优秀的天文软件,它可以在电脑屏 ... -
编译 SQLite3
2008-12-05 18:19 7805SQLite 官方提供的编译方法: http://www.s ... -
wxWidgets 中使用 CxImage 库
2008-11-26 19:04 2294兴奋!!!经历了 VC++ 2008 无数次的“error L ... -
Visual C++ 2008 Express Edition 编译 Lua
2008-11-12 10:53 3528实在难以忍受网上流传的各种关于使用 VC 编译 Lua 的文章 ... -
Visual C++ 2008 Express Edition 环境下使用 wxWidgets
2008-11-11 16:23 4232wxWidgets 是一个开源的跨 ... -
Subversion与CVS的对比——功能性对比
2007-12-13 14:01 1809一、Subversion包含绝大部 ... -
文泉驿
2007-10-19 15:20 1342现在开源真是流行,连中文字体都有开源的,而且还挺好看的,不比微 ... -
去掉PowerDesigner 12 的日期提示
2007-09-18 13:08 2142最近 Sybase 推出了新版的 PowerDesigner ... -
同时运行多个tomcat
2007-09-14 15:29 2881最近因为工作所需,要在一台服务器上同时运行两个 tomcat, ... -
有必要设操作系统环境变量吗?
2007-09-12 13:59 1785几乎所有和Java有关的书,一提到搭建Java的运行环境,言必 ...
相关推荐
C+ + for Programmers.chm PRACTICAL, EXAMPLE-RICH COVERAGE OF: Classes, Objects, Encapsulation, Inheritance, Polymorphism Integrated OOP Case Studies: Time, GradeBook, Employee Industrial-Strength,...
* I/O, Types, Control Statements, Methods * Arrays, Generics, Collections * Exception Handling, Files * GUI, Graphics, GroupLayout, JDIC * Using the Debugger and the API Docs * And more… VISIT...
Written for programmers with a background in high-level language programming, C# 6 for Programmers applies the Deitel signature live-code approach to teaching programming and explores Microsoft’s C# ...
Print ISBN-10: 0137001304 Print ISBN-13: 978-0137001309 PRACTICAL, EXAMPLE-RICH COVERAGE OF: Classes, Objects, Encapsulation, Inheritance, Polymorphism Integrated OOP Case Studies: Time, GradeBook...
In the introductory chapter, the author highlights the challenges that come with programming in C, particularly due to its low-level nature and lack of built-in safeguards against certain types of ...
With HTML5 Programmer’s Reference at their elbows, programmers can quickly learn and master these new technologies, and maybe even surprise themselves with what they can do with them. The book dives...
C# 7.0 Pocket Reference: Instant Help for C# 7.0 Programmers English | 2017 | ISBN-10: 1491988533 | 234 pages | PDF + EPUB + MOBI(conv) | 2 Mb When you need answers for programming with C# 7.0, this ...
This book presents an introduction to programming interactive computer graphics, with an emphasis on game ...Experienced Direct3D 9 programmers wishing to learn the latest iteration of Direct3D.
From that you should be able to visualize the types of games that can be developed based on the techniques taught in this book and some of your own ingenuity. Intended Audience This book was ...
Written for programmers with a background in C++, Java or other high-level, object-oriented languages, this book applies the Deitel signature live-code approach to teaching programming and explores ...
Types of Computer Languages Section 1.3. Why Study Assembly Language? Section 1.4. Prefixes for Binary Multiples Section 1.5. Instruction Set Architectures Section 1.6. The Life Cycle of ...
It does not get stuck on single systems or even system types, but tries to expand the original teachings from Unix system level programming to all types of servers, the cloud, and the web.
computer programmers, and system designers needing a thorough understanding of basic features, operations, and limitations of different types of computer networks. The Seventh Edition retains many of...
It does not get stuck on single systems or even system types, but tries to expand the original teachings from Unix system level programming to all types of servers, the cloud, and the web
It does not get stuck on single systems or even system types, but tries to expand the original teachings from Unix system level programming to all types of servers, the cloud, and the web.
10 Component Names .......................................................................................... 10 Basic VxWorks Components ................................................................