- 浏览: 307322 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
wst0350:
点赞,有空深入讲解下原理
Servlet、Filter 和 Listener 调用顺序、生命周期的实验分析 -
tuspark:
Eclipse中高亮设置内容还有很多细节选项可以设置的,可以看 ...
Eclipse 设置匹配代码高亮 -
xichao1929:
这个时候,怎么启动发布的项目呢?????
JBoss设置为Windows服务 -
xiaozi7:
非常感谢,楼主的英语水平不一般那
WebSphere MQ Version 7 发布订阅相关配置 -
qtlkw:
slave没玩过
Hudson: java.lang.OutOfMemoryError: Java heap space error
引自: "http://www.oschina.net/news/16950/the-greatest-developer-fallacy-or-the-wisest-words"
"I will learn it when I need it"! I've heard that phrase a lot over the years; it seems like a highly pragmatic attitude to foster when you're in an industry as fast-paced as software development. On some level it actually IS quite pragmatic, but on another level I am annoyed by the phrase. It has become a mantra for our whole industry which hasn't changed said industry for the better. The problem is this, in the guise of sounding like a wise and practical developer, people use it as an excuse to coast. There is too much stuff to know, it is necessary to be able to pick certain things up as you go along – part of the job. But, there is a difference between having to "pick up" some knowledge as you go along and doing absolutely everything just-in-time.
The whole industry has become a bunch of generalists, maybe it has always been this way, I just wasn't around to see it, either way I don't like it. Noone wants to invest the time to learn anything really deeply, not computer science fundamentals, not the latest tech you're working with, not even the language you've been coding in every day, for the last few years. Why bother, it will be replaced, superseded, marginalised and out of fashion before you're half way done. I've discussed this with various people many times, but noone seems to really see it as a problem. "Just being pragmatic dude". In the meantime we've all become clones of each other. You want a Java developer, I am a Java developer, you're a Java developer, my neighbour is a Java developer. What differentiates us from each other – not much! Well, I've got some jQuery experience. That's great, so you know how to build accordion menu then? Sure, I Google it and steal the best code I find. In the meantime, if you need to hire a REAL expert (in anything, maybe you're writing a fancy parser or need to visualise some big data), I hope you've stocked up on beer and sandwiches cause you're gonna be here a while.
Ok, there are ways to differentiate yourself, I have better communication skills, which is why I do better. That's important too, but, developers differentiating themselves based on soft skills rather than developer skills – seems a bit twisted. We all communicate really well but the code is a mess. Hell, I shouldn't really talk, I am a bit of a generalist too. Of course I'd like to think of myself as a T-shaped individual, but if we're completely honest, it's more of a dash-shaped or underscore-shaped with maybe a few bumps. To the uninitiated those bumps might look like big giant stalactites – T-shaped indeed. You seem like an expert without ever being an expert, just one advantage of being in a sea of generalists.
Investing In Your Future
I don't want to preach about how we should all be investing in our professional future, everybody knows we should be. Most people probably think they are infact investing, they rock up to work, write a lot of code maybe even do some reading on the side, surely that must make them an expert in about 10 years, and a senior expert in 20 (I keep meaning to write more about this, one day I'll get around to it)? But, if that was the way, every old person would be an expert in a whole bunch of stuff and that is emphatically not the case. Maybe it is just that people don't know how to build expertise (there is an element of truth to this), but I have a sneaking suspicion that it's more about lack of desire rather than lack of knowledge. What was that saying about the will and the way – totally applicable in this case?
I've gone completely off-track. "Investing in professional future" is just one of those buzzword things, the mantra is "I will learn it when I need it". It was good enough for my daddy and it has served me well so far. Let's apply this thinking to finance, "I will invest my money when I think I need the money". Somehow it doesn't quite have the same kind of pragmatic ring to it.
You Don't Know What You Don't Know
We've all had those moments where you're going through major pain trying to solve a problem until someone comes along and tells you about algorithm X or technology Y and it makes everything fast and simple. It was lucky that person just happened to be there to show you the "easy" way, otherwise you would have spent days/weeks trying to figure it out and it would have been a mess. You can't be blamed for this though, you don't know what you don't know. For me, this is where the "I will learn it when I need it" mentality falls over. You can't learn something if you don't know it exists. Google goes a long way towards mitigating this problem, but not all the way. There are plenty of problems you will encounter in the wild where you can beat your head against the wall ad infinitum unless you know what class of problem you're looking at (e.g. if you know a bit about searching and constraint propagation, solving sudoku is easy, otherwise it's really quite hard). You can't learn about an algorithm if you're not aware of it or its applicability. You can't utilise a technology to solve a problem if you don't even realise it has that capability. You're not going to always have someone there to point you in the right direction. I am willing to bet there is a billion lines of code out there right now which can be replaced with a million lines of faster, cleaner, better code simply because whoever wrote it didn't know what they didn't know.
I seem to be making a case for the opposite side here, if knowing what you don't know is the ticket then surely we should be focusing on breadth of knowledge. Superficial awareness of as much stuff as possible should see us through, we'll be able to recognise the problems when we see them and then learn what we need more deeply. Except it doesn't work like that, skimming subjects doesn't allow you to retain anything, our brain doesn't work that way. If we don't reinforce and dig deeper into the concepts we quickly page that information out as unimportant, it is a waste of time (think back to cramming for exams, how much do you remember the next day?). However if you focus on building deeper understanding of a subject – in an interesting twist – you will gain broad knowledge as well (which you will actually be able to retain). My grandad is a nuclear physicist, several decades of working to gain deeper knowledge of the subject has made him an expert, but it has also made him an excellent mathematician, a decent chemist, a pretty good geologist, a fair biologist etc. Just some empirical evidence that seeking depth leads to breadth as a side-effect.
Can You Learn It Fast Enough
Some stuff just takes a long time to learn. I am confident I can pick up an ORM framework I haven't seen before without even breaking stride, I've used them before, the concepts are the same. But what if you need to do some speech to text conversion, not quite as simple, not enough background. Hopefully Google will have something for us to copy/paste. That was a bad example, only research boffins at universities need to do that crap. How about building a website then, we all know how to do that, but what if you need to do it for 10 million users a day. We just need to learn everything about scaling, I am sure the users will wait a month or two for us to get up to speed. Yeah, I am just being stupid, all we need to do is hire an expert and … errr … oh wait, we're all out of beer and sandwiches.
Why Should I Care
Working with experts is freaking awesome. You may have experienced it before, everything they say is something new and interesting, you learn new tricks with every line of code, you can almost feel your brain expanding. You want to learn from the experts, so it's really sad when you can't find any. Since everyone is only learning when they "need it", noone can teach anything to anyone. The chunk of wisdom here is this, you want to work with experts, but the experts also want to work with experts, so what are you doing to make sure the experts want to work with you? Being able to learn something when you need it is a good skill to have, but you can not let it be your philosophy as a developer. Yes it is a big industry you can't learn everything, so pick something and make sure you know it backwards, if you're curious enough to follow up on the interesting bits, you'll find you have a decent grasp of a lot of other stuff at the end. And if you do a good enough job, other super-awesome-smart people are going to want to come and hang around you cause they'll be able to learn something from you and you'll be able to learn much from them. Everybody will be a winner.
“当我需要用到它时我就去学它!”
过去这些年里这句话我听到无数次;对于处在一个像软件开发这样的快速发展变化的行业里,这听起来像是一种十分适用主义的态度。从某些层面上说,它确 实十分适用,但从另一个层面来看,我很受这句话困扰。它似乎成了我们这个行业的福音,但却从来没有把这个行业变的更好。问题就在于,这句话表面上借明智的有经验的开发者之言,其实是幌子,实为人们随波逐流的借口。实在是有太多的东西需要我们在工作之中“发现学习”,但对于这种对新知的“发现学习”,你是工作学习齐头并进,还是单纯的遇到了什么问题,就学习处理这问题的知识?这两者之间有很大的区别。
整个行业里到处都是通才、全才,也许向来如此,只是我太闭塞,没有认识到这些,而且我也不愿意看到这种情况。没有人再愿意踏踏实实的深入研究一个东 西,包括计算机科学基本原理、你正在使用的最新技术、甚至是你最近几年一直使用的语言。何必自寻烦恼,也许当你学在半途中时就会发现,这些技术知识已经被 更新升级,被废弃,被边缘化,被过时、不再流行。我曾和很多人讨论过这个现象,没有一个人认为这是一个问题。“做个实用主义的人吧。”
与此同时,我们大家都在相互模仿克隆。现在需要一个Java程序员,我是一个Java程序员,你也是Java程序员,我邻居也是个Java程序员。 我们大家之间有什么区别?——没什么区别!还有,我学会一些jQuery知识。这不错,这样我就知道如何做一个可折叠的菜单了。而且,我可以使用 Google在网上搜一下,到处都是,我能搜到最好的代码,剽窃它。而同时,如果你想招募一个Perl专家(也许你想要一个神奇的解释器或将大量数据进行 可视化),那你可要准备好足够的干粮和水了,因为你根本找不到。
不错,是有很多地方能看出你我的区别,我有更好的沟通技巧,所以我做的更好。这当然很重要,但是,开发人员通过软实力,而不是开发技术能力来区分 —— 感觉有些扭曲。我们大家的沟通技巧都很好,可写出的代码是一团糟 。该死,我本不该说这些,因为我也算得上是一个通才。当然,我更愿意把自己看作一个既有广度又有深度(T型)的人,但是,如果你愿意说真正的实话,你会说,大部分的人都只有广度,没有深度,更像横线型(破折号型) 。在这些破折号中你就像是个巨大的石钟乳 —— 你是T型的。你看上去就像个专家,即使你从来不是专家,这就是在到处都是通才的时候做为专才的优势。
投资你的未来
我不想传道似的告诉大家我们应该对未来的职业生涯进行投资,因为这是每个人都知道的。大多数人认为自己正在投资,他们努力的工作,写大量的程序,甚 至边工作边学习,诚然,这10年下去肯定会成为一个专家,20年下去成为一个资深专家。但是,如果事情果真是这样,那每个年纪大的人都会成为各个方面的专 家,事实断然不会是这样。也许原因是人们不知道如何在某个方向去发展他们的特长(这是实际存在的),但我私下里更怀疑是,人们更多的是缺乏热情,而不是缺乏这方面的指点。上面所说的各种问题都基本上可归于这种情况。
我完全说跑题了。“对未来进行投资”只是我们讨论的问题之一,而主要问题是”我需要用到它时就会去学它“这句箴言。这句话给我老爸很合适,而且它也为我所用这么多年。让我们把这句话的思想应用到金融上吧,“当我需要钱时我会去进行投资的”。你会发现有些时候这句话并不是那么适用。
你不知道你缺少哪些知识
我们都经历过这样的时刻:你痛苦被折磨于要解决一个问题,最终是有人过来告诉关于X算法或Y技术,这让所有问题变得又快又简单。你很幸运能碰到这样 一个能告诉你“简单”方法的人,否则的话你可能要用去数天、数周去把问题弄明白,而且事情会变的乱糟糟。你不会因为此而受到责备,因为你不可能提前知道你 会缺少什么样的知识。我想,这就是“当我需要它时我就会学它”的思想方法失败的地方。你不可能去学你从未听说过的技术知识。 Google做出了很大的成就来缓解这个问题,但这不能解决所有问题。在茫茫的未知领域你会遭遇到大量的未知难题,它们会让你撞的头破血流,要多惨有多 惨,除非你能明白你所面对的是什么类型的问题(例如,如果你知道一些搜索算法和约束传播问题,你可以去解决数独难题,否则,你就陷入困境了)。你不可能去 学习一种你不知道的或不知道用在哪里的算法。你不可能去利用一个你根本不知道能做什么的技术去解决一个问题。不可能一直有人在旁边指点你正确的方向。我敢 打赌这世界上有数百万的代码可以被替换成更高效、更整洁、更有效的代码,只是因为写这些代码的人不知道自己欠缺某方面的知识。
我想反向说明一下这个问题,假使能提前知道我们缺少什么知识,那么,诚然,我需要关注大量的知识。粗浅的大范围的尽可能多的涉猎各种知识对我们有很大帮助。当问题发生时,我就能看出问题是什么领域的,然后针对这种知识深入的研究。可是,事情并不会这样发生,浮光掠影的通览各种知识最终并不会在我们的脑海里留下任何痕迹,我们的大脑不是这样工作的。如果我不去强化和深入挖掘某个知识概念,我们的大脑会很快就会把它标记为不重要信息,完全是一种浪费时间(回想一下你为了考试而死记硬背的东西在第二天还能记住多少?)。然而,如果你能集中精力对某一主题进行深入研究——并伴随着兴趣——你会收获颇丰(这将是你不会忘记的)。我爷爷是一个核物理学家,数十年如一日的收集研究这个领域里的知识使他成为了一个专家,但这也同时使他成为了一个出色的数学家,一个不错的化学家,一个非常棒的地质学家,一个合格的生物学家,等等。这只是因为深入研究而获得的广泛的副产品。
你能以足够快的速度学会它们吗
有些东西需要你花很长时间才能学会。我有信心在不皱眉头的情况下学会一个以前从未见过的ORM框架,因为类似的东西我以前见过,它们概念是相同的。 但如果你需要做一些把演说转换成文字的东西,这可不会这么简单,你没有足够的背景知识。把希望寄托在Google上,搜出一些东西我们可以去粘贴拷贝。这 是一个很坏的做法,只有大学里的研究人员才会去做这种烂事。如果是开发一个网站呢?我们都知道该怎么做,但如果需要能支持每天1千万的用户访问量呢?我需 要知道如何去升级,我相信不花一两个月的研究你是不可能把速度提上去的 。是呀,我太蠢了,我应该做的是雇一个专家,然后 … 哦 … 慢,等等,我们的干粮和水都不够了。
为什么我在乎这些
跟专家一起工作实在是太爽了。也许你以前有过这样的经历,他们说的那些东西都是那么新颖和有趣,他们的每行代码都能让你受益匪浅,你几乎都能感到你的脑容量在膨胀 。你希望能跟专家学习,可当你找不到这样的专家时,那就太不幸了。因为每个人都是在“需要”的时候才去学习,没有人可以教别人什么东西。而这其中最大的教训是,专家同样也想和专家一起工作,所以,你的问题在于,要能清楚专家是否愿意和你一起工作?如 果能做到在需要的时候就去学习,这是个不错的做法,但你不能把它当作一个软件开发者的至理名言。不错,这个行业很宽广,你不可能样样都学,所以要选择一 些,学精,如果你很好奇而做了深入研究,你会发现最终你在很多其他知识上都会有一个相当的掌握。而且如果你能做出一份出色的工作,其他精英贤达都会希望和 你左右同行,因为他们这样可以从你身上学到知识,而你也能从他们身上学到更多的东西。这对每个人都是再好不过。
"I will learn it when I need it"! I've heard that phrase a lot over the years; it seems like a highly pragmatic attitude to foster when you're in an industry as fast-paced as software development. On some level it actually IS quite pragmatic, but on another level I am annoyed by the phrase. It has become a mantra for our whole industry which hasn't changed said industry for the better. The problem is this, in the guise of sounding like a wise and practical developer, people use it as an excuse to coast. There is too much stuff to know, it is necessary to be able to pick certain things up as you go along – part of the job. But, there is a difference between having to "pick up" some knowledge as you go along and doing absolutely everything just-in-time.
The whole industry has become a bunch of generalists, maybe it has always been this way, I just wasn't around to see it, either way I don't like it. Noone wants to invest the time to learn anything really deeply, not computer science fundamentals, not the latest tech you're working with, not even the language you've been coding in every day, for the last few years. Why bother, it will be replaced, superseded, marginalised and out of fashion before you're half way done. I've discussed this with various people many times, but noone seems to really see it as a problem. "Just being pragmatic dude". In the meantime we've all become clones of each other. You want a Java developer, I am a Java developer, you're a Java developer, my neighbour is a Java developer. What differentiates us from each other – not much! Well, I've got some jQuery experience. That's great, so you know how to build accordion menu then? Sure, I Google it and steal the best code I find. In the meantime, if you need to hire a REAL expert (in anything, maybe you're writing a fancy parser or need to visualise some big data), I hope you've stocked up on beer and sandwiches cause you're gonna be here a while.
Ok, there are ways to differentiate yourself, I have better communication skills, which is why I do better. That's important too, but, developers differentiating themselves based on soft skills rather than developer skills – seems a bit twisted. We all communicate really well but the code is a mess. Hell, I shouldn't really talk, I am a bit of a generalist too. Of course I'd like to think of myself as a T-shaped individual, but if we're completely honest, it's more of a dash-shaped or underscore-shaped with maybe a few bumps. To the uninitiated those bumps might look like big giant stalactites – T-shaped indeed. You seem like an expert without ever being an expert, just one advantage of being in a sea of generalists.
Investing In Your Future
I don't want to preach about how we should all be investing in our professional future, everybody knows we should be. Most people probably think they are infact investing, they rock up to work, write a lot of code maybe even do some reading on the side, surely that must make them an expert in about 10 years, and a senior expert in 20 (I keep meaning to write more about this, one day I'll get around to it)? But, if that was the way, every old person would be an expert in a whole bunch of stuff and that is emphatically not the case. Maybe it is just that people don't know how to build expertise (there is an element of truth to this), but I have a sneaking suspicion that it's more about lack of desire rather than lack of knowledge. What was that saying about the will and the way – totally applicable in this case?
I've gone completely off-track. "Investing in professional future" is just one of those buzzword things, the mantra is "I will learn it when I need it". It was good enough for my daddy and it has served me well so far. Let's apply this thinking to finance, "I will invest my money when I think I need the money". Somehow it doesn't quite have the same kind of pragmatic ring to it.
You Don't Know What You Don't Know
We've all had those moments where you're going through major pain trying to solve a problem until someone comes along and tells you about algorithm X or technology Y and it makes everything fast and simple. It was lucky that person just happened to be there to show you the "easy" way, otherwise you would have spent days/weeks trying to figure it out and it would have been a mess. You can't be blamed for this though, you don't know what you don't know. For me, this is where the "I will learn it when I need it" mentality falls over. You can't learn something if you don't know it exists. Google goes a long way towards mitigating this problem, but not all the way. There are plenty of problems you will encounter in the wild where you can beat your head against the wall ad infinitum unless you know what class of problem you're looking at (e.g. if you know a bit about searching and constraint propagation, solving sudoku is easy, otherwise it's really quite hard). You can't learn about an algorithm if you're not aware of it or its applicability. You can't utilise a technology to solve a problem if you don't even realise it has that capability. You're not going to always have someone there to point you in the right direction. I am willing to bet there is a billion lines of code out there right now which can be replaced with a million lines of faster, cleaner, better code simply because whoever wrote it didn't know what they didn't know.
I seem to be making a case for the opposite side here, if knowing what you don't know is the ticket then surely we should be focusing on breadth of knowledge. Superficial awareness of as much stuff as possible should see us through, we'll be able to recognise the problems when we see them and then learn what we need more deeply. Except it doesn't work like that, skimming subjects doesn't allow you to retain anything, our brain doesn't work that way. If we don't reinforce and dig deeper into the concepts we quickly page that information out as unimportant, it is a waste of time (think back to cramming for exams, how much do you remember the next day?). However if you focus on building deeper understanding of a subject – in an interesting twist – you will gain broad knowledge as well (which you will actually be able to retain). My grandad is a nuclear physicist, several decades of working to gain deeper knowledge of the subject has made him an expert, but it has also made him an excellent mathematician, a decent chemist, a pretty good geologist, a fair biologist etc. Just some empirical evidence that seeking depth leads to breadth as a side-effect.
Can You Learn It Fast Enough
Some stuff just takes a long time to learn. I am confident I can pick up an ORM framework I haven't seen before without even breaking stride, I've used them before, the concepts are the same. But what if you need to do some speech to text conversion, not quite as simple, not enough background. Hopefully Google will have something for us to copy/paste. That was a bad example, only research boffins at universities need to do that crap. How about building a website then, we all know how to do that, but what if you need to do it for 10 million users a day. We just need to learn everything about scaling, I am sure the users will wait a month or two for us to get up to speed. Yeah, I am just being stupid, all we need to do is hire an expert and … errr … oh wait, we're all out of beer and sandwiches.
Why Should I Care
Working with experts is freaking awesome. You may have experienced it before, everything they say is something new and interesting, you learn new tricks with every line of code, you can almost feel your brain expanding. You want to learn from the experts, so it's really sad when you can't find any. Since everyone is only learning when they "need it", noone can teach anything to anyone. The chunk of wisdom here is this, you want to work with experts, but the experts also want to work with experts, so what are you doing to make sure the experts want to work with you? Being able to learn something when you need it is a good skill to have, but you can not let it be your philosophy as a developer. Yes it is a big industry you can't learn everything, so pick something and make sure you know it backwards, if you're curious enough to follow up on the interesting bits, you'll find you have a decent grasp of a lot of other stuff at the end. And if you do a good enough job, other super-awesome-smart people are going to want to come and hang around you cause they'll be able to learn something from you and you'll be able to learn much from them. Everybody will be a winner.
“当我需要用到它时我就去学它!”
过去这些年里这句话我听到无数次;对于处在一个像软件开发这样的快速发展变化的行业里,这听起来像是一种十分适用主义的态度。从某些层面上说,它确 实十分适用,但从另一个层面来看,我很受这句话困扰。它似乎成了我们这个行业的福音,但却从来没有把这个行业变的更好。问题就在于,这句话表面上借明智的有经验的开发者之言,其实是幌子,实为人们随波逐流的借口。实在是有太多的东西需要我们在工作之中“发现学习”,但对于这种对新知的“发现学习”,你是工作学习齐头并进,还是单纯的遇到了什么问题,就学习处理这问题的知识?这两者之间有很大的区别。
整个行业里到处都是通才、全才,也许向来如此,只是我太闭塞,没有认识到这些,而且我也不愿意看到这种情况。没有人再愿意踏踏实实的深入研究一个东 西,包括计算机科学基本原理、你正在使用的最新技术、甚至是你最近几年一直使用的语言。何必自寻烦恼,也许当你学在半途中时就会发现,这些技术知识已经被 更新升级,被废弃,被边缘化,被过时、不再流行。我曾和很多人讨论过这个现象,没有一个人认为这是一个问题。“做个实用主义的人吧。”
与此同时,我们大家都在相互模仿克隆。现在需要一个Java程序员,我是一个Java程序员,你也是Java程序员,我邻居也是个Java程序员。 我们大家之间有什么区别?——没什么区别!还有,我学会一些jQuery知识。这不错,这样我就知道如何做一个可折叠的菜单了。而且,我可以使用 Google在网上搜一下,到处都是,我能搜到最好的代码,剽窃它。而同时,如果你想招募一个Perl专家(也许你想要一个神奇的解释器或将大量数据进行 可视化),那你可要准备好足够的干粮和水了,因为你根本找不到。
不错,是有很多地方能看出你我的区别,我有更好的沟通技巧,所以我做的更好。这当然很重要,但是,开发人员通过软实力,而不是开发技术能力来区分 —— 感觉有些扭曲。我们大家的沟通技巧都很好,可写出的代码是一团糟 。该死,我本不该说这些,因为我也算得上是一个通才。当然,我更愿意把自己看作一个既有广度又有深度(T型)的人,但是,如果你愿意说真正的实话,你会说,大部分的人都只有广度,没有深度,更像横线型(破折号型) 。在这些破折号中你就像是个巨大的石钟乳 —— 你是T型的。你看上去就像个专家,即使你从来不是专家,这就是在到处都是通才的时候做为专才的优势。
投资你的未来
我不想传道似的告诉大家我们应该对未来的职业生涯进行投资,因为这是每个人都知道的。大多数人认为自己正在投资,他们努力的工作,写大量的程序,甚 至边工作边学习,诚然,这10年下去肯定会成为一个专家,20年下去成为一个资深专家。但是,如果事情果真是这样,那每个年纪大的人都会成为各个方面的专 家,事实断然不会是这样。也许原因是人们不知道如何在某个方向去发展他们的特长(这是实际存在的),但我私下里更怀疑是,人们更多的是缺乏热情,而不是缺乏这方面的指点。上面所说的各种问题都基本上可归于这种情况。
我完全说跑题了。“对未来进行投资”只是我们讨论的问题之一,而主要问题是”我需要用到它时就会去学它“这句箴言。这句话给我老爸很合适,而且它也为我所用这么多年。让我们把这句话的思想应用到金融上吧,“当我需要钱时我会去进行投资的”。你会发现有些时候这句话并不是那么适用。
你不知道你缺少哪些知识
我们都经历过这样的时刻:你痛苦被折磨于要解决一个问题,最终是有人过来告诉关于X算法或Y技术,这让所有问题变得又快又简单。你很幸运能碰到这样 一个能告诉你“简单”方法的人,否则的话你可能要用去数天、数周去把问题弄明白,而且事情会变的乱糟糟。你不会因为此而受到责备,因为你不可能提前知道你 会缺少什么样的知识。我想,这就是“当我需要它时我就会学它”的思想方法失败的地方。你不可能去学你从未听说过的技术知识。 Google做出了很大的成就来缓解这个问题,但这不能解决所有问题。在茫茫的未知领域你会遭遇到大量的未知难题,它们会让你撞的头破血流,要多惨有多 惨,除非你能明白你所面对的是什么类型的问题(例如,如果你知道一些搜索算法和约束传播问题,你可以去解决数独难题,否则,你就陷入困境了)。你不可能去 学习一种你不知道的或不知道用在哪里的算法。你不可能去利用一个你根本不知道能做什么的技术去解决一个问题。不可能一直有人在旁边指点你正确的方向。我敢 打赌这世界上有数百万的代码可以被替换成更高效、更整洁、更有效的代码,只是因为写这些代码的人不知道自己欠缺某方面的知识。
我想反向说明一下这个问题,假使能提前知道我们缺少什么知识,那么,诚然,我需要关注大量的知识。粗浅的大范围的尽可能多的涉猎各种知识对我们有很大帮助。当问题发生时,我就能看出问题是什么领域的,然后针对这种知识深入的研究。可是,事情并不会这样发生,浮光掠影的通览各种知识最终并不会在我们的脑海里留下任何痕迹,我们的大脑不是这样工作的。如果我不去强化和深入挖掘某个知识概念,我们的大脑会很快就会把它标记为不重要信息,完全是一种浪费时间(回想一下你为了考试而死记硬背的东西在第二天还能记住多少?)。然而,如果你能集中精力对某一主题进行深入研究——并伴随着兴趣——你会收获颇丰(这将是你不会忘记的)。我爷爷是一个核物理学家,数十年如一日的收集研究这个领域里的知识使他成为了一个专家,但这也同时使他成为了一个出色的数学家,一个不错的化学家,一个非常棒的地质学家,一个合格的生物学家,等等。这只是因为深入研究而获得的广泛的副产品。
你能以足够快的速度学会它们吗
有些东西需要你花很长时间才能学会。我有信心在不皱眉头的情况下学会一个以前从未见过的ORM框架,因为类似的东西我以前见过,它们概念是相同的。 但如果你需要做一些把演说转换成文字的东西,这可不会这么简单,你没有足够的背景知识。把希望寄托在Google上,搜出一些东西我们可以去粘贴拷贝。这 是一个很坏的做法,只有大学里的研究人员才会去做这种烂事。如果是开发一个网站呢?我们都知道该怎么做,但如果需要能支持每天1千万的用户访问量呢?我需 要知道如何去升级,我相信不花一两个月的研究你是不可能把速度提上去的 。是呀,我太蠢了,我应该做的是雇一个专家,然后 … 哦 … 慢,等等,我们的干粮和水都不够了。
为什么我在乎这些
跟专家一起工作实在是太爽了。也许你以前有过这样的经历,他们说的那些东西都是那么新颖和有趣,他们的每行代码都能让你受益匪浅,你几乎都能感到你的脑容量在膨胀 。你希望能跟专家学习,可当你找不到这样的专家时,那就太不幸了。因为每个人都是在“需要”的时候才去学习,没有人可以教别人什么东西。而这其中最大的教训是,专家同样也想和专家一起工作,所以,你的问题在于,要能清楚专家是否愿意和你一起工作?如 果能做到在需要的时候就去学习,这是个不错的做法,但你不能把它当作一个软件开发者的至理名言。不错,这个行业很宽广,你不可能样样都学,所以要选择一 些,学精,如果你很好奇而做了深入研究,你会发现最终你在很多其他知识上都会有一个相当的掌握。而且如果你能做出一份出色的工作,其他精英贤达都会希望和 你左右同行,因为他们这样可以从你身上学到知识,而你也能从他们身上学到更多的东西。这对每个人都是再好不过。
发表评论
-
es使用两种方式
2018-06-28 16:26 0第一种方式: 使用TransportClient packag ... -
hbase
2018-06-25 13:50 0package cn.com.duiba.appordersy ... -
guava
2017-09-22 18:03 6381.Guava Cache的get/getIfPresent方 ... -
转:架构
2017-06-23 08:13 493架构是软件的核心和灵魂,没有好的架构的软件经过一段时间的迭代后 ... -
使用 redis 减少 秒杀库存 超卖思路
2017-06-22 23:58 561612月份重构公司社群活动产品,原来自己不是很成熟,按传统的形式 ... -
经典笔试题
2017-06-21 23:30 495public class BaseTest { pu ... -
Restful vs RPC
2017-01-23 10:54 865传统的RPC一般是基于二 ... -
自动产生随机数
2016-11-11 10:54 555/** * java生成随机数字和字母组合 ... -
commons-lang常用工具类StringEscapeUtils
2016-11-10 20:12 8831.escapeSql 提供sql转移功能,防止sql注入攻击 ... -
Java8:Lambda表达式增强版Comparator和排序
2016-10-27 10:32 2693http://www.importnew.com/15259. ... -
Java序列化几点注意事项
2016-10-26 17:02 894静态变量不属于对象,属于类,不能被序列化.还有瞬态的变量也不能 ... -
Rest vs dubbo
2016-09-15 18:10 0Rest 基于http, 大数据量和安全性可能不佳 dubbo ... -
List删除element两种方式的不同
2016-07-26 12:41 679public class DateUtilTest { ... -
Xmemcached——比spymemcached更快
2016-07-18 10:23 467Xmemcached是一个高性能的 ... -
velocity 缓存设置
2016-07-04 20:54 1062#velocity 是否开启缓存 velocity.resou ... -
Java8 Stream用法
2016-07-04 18:58 01. collect(toList()) 由stream里的值 ... -
熔断器设计模式
2016-05-22 23:14 600转载: http://www.cnblogs.com/ ... -
Date 参数
2016-04-22 21:44 563Oracle TO_CHAR parameters: The ... -
Dubbo安装部署
2016-04-18 01:16 1609Jdk-1.6.30以上版本 Tomcat-7 ... -
java read也需要加锁
2016-02-27 18:11 643今天被问到read需不需要加锁,结果没答上来。自己写了一个程序 ...
相关推荐
2020年高考语文作文素材之时事热评“美国吃亏论”是弥天大谎
在选项中找出没有错别字的一项,这是对考生汉字书写正确性的考察,例如选项B中的“弥天大谎”是正确的,而“弥天”不能写成“迷天”或者“蜜天”。 3. 词语填空 这部分测试了考生对近义词或固定搭配的掌握,例如...
在这个故事中,庄稼汉为了讨好强大的狮王,不惜撒下弥天大谎,声称鱼儿们因见到狮王而兴奋地在锅中跳舞。孩子们通过这个故事,可以感受到权力与欺骗的关系,同时学到一个宝贵的道理:诚实待人,因为真相总有被揭露的...
”(啊,真是弥天大谎!) 现在让我们看看练习题: 1. 此处强调“who”想要见你,应选择B. he。 2. 强调主语尊重他们的所有老师,用C. they。 3. 确定是Mary被提及,所以选C. her。 4. 因为是过去发生的事情,且...
字形辨析部分则要求学生对易混淆的字形进行辨识,比如要正确区分"阑干"的正确读音"lán",以及"迷天大谎"与"弥天大谎"的区别,这些都是日常学习中的易错点,旨在巩固学生的基本功。 标点符号的运用部分则需要学生对...
10. **真话说一半常是弥天大谎**:鼓励完整、真实地传达信息,避免误导他人。 11. **不惜牺牲自由以图苟安的人,既不配享受自由,也不配获得安全**:自由与安全是相互关联的,为了短暂的安逸放弃自由是不明智的。 ...
- 迷天大谎 → 弥天大谎 - 汗流夹背 → 汗流浃背 - 尝心悦目 → 赏心悦目 - 翘大姆指 → 翘大拇指 5. 笔顺与笔画: - 辽的第一画是"丶",共七画。 - 女的第一画是"ㄑ",共三画。 - 延的第一画是"乛",共六画...
"民无信不立",这句话出自孔子,强调了诚信对于一个国家、一个社会乃至个人生存发展的基础性作用。在小学阶段,通过举办以“诚信”为主题的黑板报活动,旨在培养孩子们从小树立诚实守信的价值观。 诚信不仅仅是道德...
在四个给出的选项中,正确答案为C项“弥天大谎”,此选项中的“弥”字与文中用法相似,都表示一种遍及、充满的状态。而其他选项,如“弥留之际”、“欲盖弥彰”和“弥补过失”,与文中的意境不相符合。通过这道题,...
最后,一个纯真的孩子大声喊出皇帝根本没有穿衣服的事实,揭穿了这个弥天大谎。 这则童话不仅仅是给孩子的故事,更是成人世界的一面镜子。它深刻揭示了人性的弱点,如虚荣、欺骗、盲从以及对权威的畏惧。国王对新衣...
例如,“弥望”中的“弥”与“弥天大谎”中的“弥”虽然字形相同,但含义却有区别,一个是形容“满眼都是”,另一个则是指“极大”。这样的练习有助于提升学生的语文应用能力。 练习题还涉及对文章深层含义的探究。...
形近字和同音字往往容易混淆,如“嚼腊(jiáo là)”实际上应为“嚼蜡(jiáo là)”,而“迷天大谎”则应当是“弥天大谎”。识别和纠正错别字,有助于提升我们的语言准确性,也是培养良好书写习惯的必要过程。 此外...
2. 词汇多义词:如“弥望”一词,在选项中出现了不同的解释,如“欲盖弥彰”、“弥天大谎”、“弥补过失”和“弥留之际”,在文中的“弥望”指的是“满眼、满目的意思”,形容荷塘上荷叶的繁多。另一个例子是“精打...
考生需要对一些易混淆或易错的字形有深入的了解,例如“搜肠挂肚”与“搜肠刮肚”,“迷天大谎”与“弥天大谎”。通过正确的练习和辨识,考生可以在实际应用中更加得心应手,展现自己的语文素养和文化修养。 再者,...
- **例1**:选项D中的“飙升”和“鱼鳔”的“飚”和“鳔”的发音分别是“biāo”和“biào”,“所向披靡”和“弥天大谎”的“靡”和“弥”的发音分别是“mǐ”和“mí”,“祛除”和“祓除”的“祛”和“祓”的...
这两个骗子编织了一个弥天大谎,声称他们能织出只有聪明人能看到的布料,而愚蠢之人则无法看见。皇帝和他的大臣们为了掩饰自己的愚蠢和不称职,纷纷宣称看到了并不存在的新衣。然而,一个天真无邪的小孩最终的一句...
2. **错别字辨识**:例如选项B中的“迷天大谎”应为“弥天大谎”,选项C中的“焕然冰释”应为“涣然冰释”,选项D中的“陨身不恤”应为“殒身不恤”和“通霄达旦”应为“通宵达旦”。这类题目测试学生对常见错别字的...
在古汉语中,“弥”字有广泛的含义,如“弥天大谎”中的“弥”字表示广泛、充满,用来形容眼前的荷叶,让人感受到荷塘之大,荷叶之茂盛。微风轻拂,带来了荷塘景色的动态变化,荷叶的颤动、清香的飘散,以及月光下的...
3. **错别字辨识**:语文测试中常常出现辨识错别字的题目,例如选项中的“迷天大谎”应为“弥天大谎”,“开源截流”应为“开源节流”。 4. **成语应用**:成语的正确使用是语文能力的重要体现,如“捉襟见肘”表示...
2. 汉字读音和错别字辨识:题目中涉及到汉字的正确读音,如"簿册"的"簿"读作"bù","炮烙"的"烙"读作"luò",同时有错别字辨识,如选项B中的"迷天大谎"应为"弥天大谎",C选项的"焕然冰释"应为"涣然冰释",D选项的"陨...