Going to the next level
2006-10-24 21:49
344 查看
Keep in mind that "next level" doesn't always mean more elegant code. In corporate settings, "next level" means becoming a better developer as opposed to a better programmer.
If you choose this path, you're basically striving to get better at predicting how long it will take to write code, at designing large chunks up front, at avoiding common errors and more thoroughly testing code, at structuring it so that it's much easier to maintain and most importantly (in my opinion), defeating all of the "accidental difficulties" that prevent you from getting into a groove.
The best programmer on our staff spends about 2/3rds of the day staring out the window, thinking about what he's going to code. What impresses me is when he figures out what he'll do, he then spins around in his chair, puts his hands on the keyboard - and without touching the mouse - writes out the code, the comments and the test cases, compiles it, runs the test cases, checks it into the source code repository and queues up the daily build.
In all fairness, he does admit it took him years of tweaking and experimenting and learning how to get into that zen-like state.
I think it's worth becoming a Java/C++ guru at some point, but right now, efficient developers are prized more than gurus in Corporate America.
======================================================
Personally, I put the next step at understanding the problem domain and knowing your customer. There is only so far you can go with patterns and architecture. Being able to predict what your customer is going to want in a certain situation (which require domain knowledge and customer preference knowledge) is a valuable skill because it prevents you from having to break your flow to go and ask them a simple question. I am not saying don't consult your customers, in fact, I am saying the oppposite, consult your customers so much that you know them, their problems and their solutions. Then write the code that gets them where they want to go.
Reading the Pragmatic Programmer is a good start in general on taking the next step also. Learning a scripting language also helps because it gives you a different perspective from Java/VB/C#/C++.
If you choose this path, you're basically striving to get better at predicting how long it will take to write code, at designing large chunks up front, at avoiding common errors and more thoroughly testing code, at structuring it so that it's much easier to maintain and most importantly (in my opinion), defeating all of the "accidental difficulties" that prevent you from getting into a groove.
The best programmer on our staff spends about 2/3rds of the day staring out the window, thinking about what he's going to code. What impresses me is when he figures out what he'll do, he then spins around in his chair, puts his hands on the keyboard - and without touching the mouse - writes out the code, the comments and the test cases, compiles it, runs the test cases, checks it into the source code repository and queues up the daily build.
In all fairness, he does admit it took him years of tweaking and experimenting and learning how to get into that zen-like state.
I think it's worth becoming a Java/C++ guru at some point, but right now, efficient developers are prized more than gurus in Corporate America.
======================================================
Personally, I put the next step at understanding the problem domain and knowing your customer. There is only so far you can go with patterns and architecture. Being able to predict what your customer is going to want in a certain situation (which require domain knowledge and customer preference knowledge) is a valuable skill because it prevents you from having to break your flow to go and ask them a simple question. I am not saying don't consult your customers, in fact, I am saying the oppposite, consult your customers so much that you know them, their problems and their solutions. Then write the code that gets them where they want to go.
Reading the Pragmatic Programmer is a good start in general on taking the next step also. Learning a scripting language also helps because it gives you a different perspective from Java/VB/C#/C++.
相关文章推荐
- 10 Tips to Push Your Git Skills to the Next Level
- CSS and JavaScript tools to take your website to the next level(备用)
- Pushing the ActionBar to the Next Level
- 10 Tips to Push Your Git Skills to the Next Level
- The best way to be "right once" is to have the ability to envision what things are going to look like three weeks, three months
- Connie Dover - I'm Going to the west
- Teaching the Next Generation of Statistics Students to “Think With Data”: Special Issue on Statistic
- javax.jdo.JDOFatalDataStoreException: Failed to create database 'metastore_db', see the next excepti
- Hackerrank Going to the Office
- How to Persist With Your Goals When the Going Gets Tough
- hive 终端产生的问题 (Failed to start database 'metastore_db', see the next exception for details.)
- .NET Enum The Next Level
- Tasker to detect and vibrate once the ougoing call is being answered
- FaceBook 论文:DeepFace: Closing the Gap to Human-Level Performance in Face Verification 笔记
- "A transport-level error has occurred when sending the request to the server"的解决办法
- DeepFace: Closing the Gap to Human-Level Performance in Face Verification(精读)
- How to Prevent the next Heartbleed
- DeepFace: Closing the Gap to Human-Level Performance in Face Verification
- travel the binary tree by level 5 ( from down to top and from left to right every level )
- "A transport-level error has occurred when sending the request to the server,指定的网络名不在可用"的解决办法