-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path左耳朵耗子-陈皓经历-转.html
752 lines (292 loc) · 40.7 KB
/
左耳朵耗子-陈皓经历-转.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
<!DOCTYPE html>
<html class="theme-next muse use-motion" lang="zh-Hans">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta name="theme-color" content="#222">
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />
<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />
<link href="/css/main.css?v=5.1.4" rel="stylesheet" type="text/css" />
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=5.1.4">
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png?v=5.1.4">
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png?v=5.1.4">
<link rel="mask-icon" href="/images/logo.svg?v=5.1.4" color="#222">
<meta name="keywords" content="Hexo, NexT" />
<link rel="alternate" href="/atom.xml" title="个人博客" type="application/atom+xml" />
<meta name="description" content="左耳朵耗子-陈皓一、个人简历陈皓,coolshell.cn博客博主。14年以上软件开发相关工作经验,8年以上项目和团队管理经验。擅长底层技术架构,软件工程。对高性能,高可用,分布式,高并发,大规模数据处理系统有一定研究。技术擅长C/C++/Java和Unix/Linux/Windows。 二、轶事和思考2.1、毅然辞掉银行工作我当时在银行做银行网络、银行的电子邮件系统和办公自动化系统。当时正处在银">
<meta property="og:type" content="article">
<meta property="og:title" content="左耳朵耗子-陈皓经历(转)">
<meta property="og:url" content="https://lightnine/github.io/%E5%B7%A6%E8%80%B3%E6%9C%B5%E8%80%97%E5%AD%90-%E9%99%88%E7%9A%93%E7%BB%8F%E5%8E%86-%E8%BD%AC.html">
<meta property="og:site_name" content="个人博客">
<meta property="og:description" content="左耳朵耗子-陈皓一、个人简历陈皓,coolshell.cn博客博主。14年以上软件开发相关工作经验,8年以上项目和团队管理经验。擅长底层技术架构,软件工程。对高性能,高可用,分布式,高并发,大规模数据处理系统有一定研究。技术擅长C/C++/Java和Unix/Linux/Windows。 二、轶事和思考2.1、毅然辞掉银行工作我当时在银行做银行网络、银行的电子邮件系统和办公自动化系统。当时正处在银">
<meta property="og:locale">
<meta property="article:published_time" content="2019-03-30T14:35:12.000Z">
<meta property="article:modified_time" content="2024-06-10T07:00:19.060Z">
<meta property="article:author" content="liang">
<meta name="twitter:card" content="summary">
<script type="text/javascript" id="hexo.configurations">
var NexT = window.NexT || {};
var CONFIG = {
root: '',
scheme: 'Muse',
version: '5.1.4',
sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":false,"onmobile":false},
fancybox: true,
tabs: true,
motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
duoshuo: {
userId: '0',
author: '博主'
},
algolia: {
applicationID: '',
apiKey: '',
indexName: '',
hits: {"per_page":10},
labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
}
};
</script>
<link rel="canonical" href="https://lightnine/github.io/左耳朵耗子-陈皓经历-转.html"/>
<title>左耳朵耗子-陈皓经历(转) | 个人博客</title>
<meta name="generator" content="Hexo 7.0.0"></head>
<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">
<div class="container sidebar-position-left page-post-detail">
<div class="headband"></div>
<header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
<div class="header-inner"><div class="site-brand-wrapper">
<div class="site-meta ">
<div class="custom-logo-site-title">
<a href="/" class="brand" rel="start">
<span class="logo-line-before"><i></i></span>
<span class="site-title">个人博客</span>
<span class="logo-line-after"><i></i></span>
</a>
</div>
<p class="site-subtitle"></p>
</div>
<div class="site-nav-toggle">
<button>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
</button>
</div>
</div>
<nav class="site-nav">
<ul id="menu" class="menu">
<li class="menu-item menu-item-home">
<a href="/" rel="section">
<i class="menu-item-icon fa fa-fw fa-home"></i> <br />
首页
</a>
</li>
<li class="menu-item menu-item-about">
<a href="/about/" rel="section">
<i class="menu-item-icon fa fa-fw fa-user"></i> <br />
关于
</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/tags/" rel="section">
<i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
标签
</a>
</li>
<li class="menu-item menu-item-categories">
<a href="/categories/" rel="section">
<i class="menu-item-icon fa fa-fw fa-th"></i> <br />
分类
</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/archives/" rel="section">
<i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
归档
</a>
</li>
</ul>
</nav>
</div>
</header>
<main id="main" class="main">
<div class="main-inner">
<div class="content-wrap">
<div id="content" class="content">
<div id="posts" class="posts-expand">
<article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
<div class="post-block">
<link itemprop="mainEntityOfPage" href="https://lightnine/github.io/%E5%B7%A6%E8%80%B3%E6%9C%B5%E8%80%97%E5%AD%90-%E9%99%88%E7%9A%93%E7%BB%8F%E5%8E%86-%E8%BD%AC.html">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="">
<meta itemprop="description" content="">
<meta itemprop="image" content="/images/avatar.gif">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="个人博客">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">左耳朵耗子-陈皓经历(转)</h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2019-03-30T22:35:12+08:00">
2019-03-30
</time>
</span>
<span class="post-category" >
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-folder-o"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/%E7%BC%96%E7%A8%8B%E4%BA%BA%E7%94%9F/" itemprop="url" rel="index">
<span itemprop="name">编程人生</span>
</a>
</span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="左耳朵耗子-陈皓"><a href="#左耳朵耗子-陈皓" class="headerlink" title="左耳朵耗子-陈皓"></a>左耳朵耗子-陈皓</h1><h2 id="一、个人简历"><a href="#一、个人简历" class="headerlink" title="一、个人简历"></a>一、个人简历</h2><p>陈皓,coolshell.cn博客博主。<br>14年以上软件开发相关工作经验,8年以上项目和团队管理经验。<br>擅长底层技术架构,软件工程。<br>对高性能,高可用,分布式,高并发,大规模数据处理系统有一定研究。<br>技术擅长C/C++/Java和Unix/Linux/Windows。</p>
<h2 id="二、轶事和思考"><a href="#二、轶事和思考" class="headerlink" title="二、轶事和思考"></a>二、轶事和思考</h2><h3 id="2-1、毅然辞掉银行工作"><a href="#2-1、毅然辞掉银行工作" class="headerlink" title="2.1、毅然辞掉银行工作"></a>2.1、毅然辞掉银行工作</h3><p>我当时在银行做银行网络、银行的电子邮件系统和办公自动化系统。当时正处在银行信息化的阶段,加上当时互联网和IT业刚刚火起来,得到这份工作其实是很幸运的。银行正值扩张电子信息化业务的时候,其实应该有很多事可做,但是当时的主要工作都是由厂商来干。比如说IBM或Cisco拿下单子来,会把工作外包给系统集成商。作为一位技术人员,其实可以发挥的空间并不大,多数时间我只是出了问题打电话的角色。没有人会教你任何事,出了问题,就是打电话,然后按照他们的指导来完成工作。但这个还不是促使我离职的最主要原因,我离开是因为互联网和IT业的兴起让我有些心向往之,有想去看一看的冲动。我还记得当时的辞职书是这么写的:“本人对现有工作毫无兴趣,申请辞职”。处长说,“你可以这么写,但是要加上‘经调解无效’,另外,分给你的房就不能要了”。我说好啊。就这样就辞去了工作,去了上海。老实说,这个决定真不好做,因为几乎所有的朋友和亲人都很反对。</p>
<h3 id="2-2、选择上海闯荡的原因"><a href="#2-2、选择上海闯荡的原因" class="headerlink" title="2.2、选择上海闯荡的原因"></a>2.2、选择上海闯荡的原因</h3><p>当时选择上海是有原因的,我觉得在当时的环境(2000年)下,上海的发展比较不错。没有选择深圳的原因是个人感觉那是因为政治原因凭空冒出来的一座城市,我不是很喜欢。北京我有很多同学,而我想去一个陌生的地方。但是后来发现上海也不是做技术的地方,过得有些压抑,初来到上海的时候经常会被人瞧不起,毕竟是刚刚来到大城市。<br>我当时感觉银行束缚了我,想看看自己可以跑多远,能发挥出多大的价值。于是决定出来闯一闯,主要就是要去经历一些应该去经历的事情,不希望老了以后会后悔年轻的时候没有去。当时IT产业的发展是一个大趋势,我感觉我必须要去一座大城市,去经历一些东西。在小地方基本没有这些机会。要学会游泳就必须要跳到水里去呛两口水,所以我就义无反顾地出来了。</p>
<h3 id="2-3、工作挫折和自省"><a href="#2-3、工作挫折和自省" class="headerlink" title="2.3、工作挫折和自省"></a>2.3、工作挫折和自省</h3><p>我仍然记得自己拎着皮箱站在上海火车站的样子,举目无亲。原来在老家的时候觉得自己还挺厉害的,自以为不愁找不到好工作。不过事实却不是这样的。<br>我还记得第一次去面试时,(面试官)问了很多和C相关的问题,问了我半个小时,我一个问题都答不上来。我一直低着头,好像被审问的犯罪分子一样。我从大学毕业出来就没经历过什么面试,再加上自己内向的性格,所以,整个过程我都在低着头,不敢看别人一眼。最后,面试官问了我一个问题是“有不懂的问题你会怎么办”,这样的问题我都不敢回答,其实这道题的答案不过就是“问别人”或是“自己看书”或是“上网查资料”什么的。很显然,这场面试我肯定是被灭掉了。但这还没完,最后面试官对我说:“你出来干什么,像你这种性格根本不适合到大城市来”。<br>我当时被严重地打击了,感觉到自己确实有一些东西很差。第一个是性格差,不知道怎么与人交往;第二个是技术差,很多问题不知道;第三个就是视野狭窄,没见过世面。后面的几家公司的面试都大同小异。一个人在异地他乡,经历了这些事情,心里会非常地恐慌,“我这条路是不是走错了?”,我经常这样问自己。<br>面对这样的情况,我被逼迫着一定要改变自己。因为,离开银行时,我的家人、同学和朋友都很反对我出来,如果这样灰溜溜地回去,我面对不了他们。而前面的人还看不起我。我当时的处境真的很难堪,就像爬在悬崖中间,上不去也下不来。所以,当时只有一个想法,就是要证明自己不是那么差的人。人被逼到那个份上,活得就比较简单,哪有什么职业发展规划,只想拼命地多学技术,提高自己的能力。这个经历有点像是一剂兴奋剂,同时也相当阵痛。但是回头想想,第一个面试官应该是我最感谢的人。</p>
<h3 id="2-4、疯狂成长"><a href="#2-4、疯狂成长" class="headerlink" title="2.4、疯狂成长"></a>2.4、疯狂成长</h3><p>在同学的帮助下我找到了在上海的第一份工作。南天公司,这是一家给银行做系统集成软件的公司,大学毕业时本来也可以进去,现在绕了一圈而且还是靠同学帮助进去的,所以那时的心态还很不平稳;另一方面因为以前是做银行的,是甲方,现在成了乙方了,两边的人都用异样的眼光看我,心态非常不好。<br>不过,这是个技术不错的企业,国内早期很多搞Unix/C的高手都是从这个公司培养出来的。我当时的技术还是不行,比如说到了用户站点以后,不知道怎么做,我曾经误操作把用户的数据删掉了。经常犯低级错误,不但没做好自己的工作,反而还给别人添了麻烦。这些经历都让我有一种“技术焦虑感”,或者叫“技术忧郁症”。我觉得自己这也不行,那也不行。这也是我今天仍然在拼命学习的原因。这就好像我们经常在参加工作多年后还会梦见自己的英语四级没过,或者是期末考试没过一样。我经常会梦见的是项目又做砸了,又把用户的系统搞乱了,一大堆人要审我、要训斥我。<br>因为技术差,沟通差,不会面试,所以,我决定经常出去面试,基本上每周都要去,不管懂不懂,也不管是什么公司,也不管别人鄙不鄙视我,反正一有机会就去面试,多见见人这样可以让我的性格有所改善,同时,也可以知道社会上需要一些什么样的技能,把别人面我回答不上来的东西都记下来,然后回头找答案。那个时候我会经常去上海书城看书,看很多很多的书。我学的东西很杂,什么做网页,Windows,Unix,Java,.NET,flash,连3DMax/Photoshop我也学,还去考CCNA的认证等等。这样散乱地学习两年后,我才慢慢确定了要走C/C++/Unix/Windows系统底层的路子。而这样扑天盖地学习的结果有一个好处就是,我成长的速度相当之快。我自己摸索到了适合我的学习方法(从基础和原理上学习),从而不再害怕各种新的技术。那时,所有人都在休黄金周出去玩的时候,我还呆在办公室或住处看书学习。<br>等到一年半之后,用句赵本山的台词说,我在面试中学会抢答了。面试官的问题没问完,我就能说出答案了。其实,基本上是面一个公司过一个(当然都是一些小公司),此时,我就开始挑公司了。<br>感到技术能力不行就去学技术,交往能力不行我就去面试,这两个问题都可以通过大量地实践和努力来弥补,但是眼界这个东西没有办法通过努力来弥补。所以,当时非常想去一些更大的公司看看,如果能去外企更好。</p>
<h3 id="2-5、变得不一样"><a href="#2-5、变得不一样" class="headerlink" title="2.5、变得不一样"></a>2.5、变得不一样</h3><p>我还记得,有一天,有一个和网络相关的技术问题,同事们搞了三四个通宵,也没弄明白,后来想起我好像在看这方面的书,他们就让我去看看、试试,结果我只用了20分钟就搞定了。基础真的很重要,这受益于我看了《TCP/IP详解》这套书。<br>后来,我去了一家做电信软件的公司,他们让我做PowerBuilder,尽管我当时想做的是C++,但是因为当时各种原因很需要这份工作,就去了。进了那里的第一天发现公司里有一个论坛,上面都是一些技术上悬而未决的问题,都是关于Windows/C++的。我一看,都是些很简单的问题,一下午的时间就被我全部解决掉了,我的基础知识发挥了作用。于是,当天下午我一下子就被调到了核心组。不过,我只在那里呆了两个多月,因为那时我已经不愁找工作了,这期间有两家北京的公司录用了我,于是,02年我就来到了北京,去到一家做分布式计算平台软件的公司。<br>在上海的这两年的时间,从什么都不是,到得到工作上的全面肯定。那段时间感觉自己牛得不得了,有些狂妄和骄傲了,经常上网和不认识的人争论一些很傻的问题,后来发展到对当时的领导以及银行客户的领导不敬,总觉得这些人太二。现在回头看过去,我觉得那是我人生特定时期的记号,人生的痕迹。</p>
<h3 id="2-6、建立coolshell-cn的原因"><a href="#2-6、建立coolshell-cn的原因" class="headerlink" title="2.6、建立coolshell.cn的原因"></a>2.6、建立coolshell.cn的原因</h3><p>我2002年在CSDN开了一个blog,当时叫专家专栏。开个专栏很简单,只要发6个帖子。我也不是什么专家,只是喜欢看书、喜欢学习而已,也喜欢做一些学习笔记。那时候没有笔记本也没有台式机,市面上好像也没有U盘和移动硬盘。正好有CSDN这么一个地方,就去CSDN的站点上把自己的一些学习笔记放在了上面。后来03年的时候技术专栏转到了博客,因为CSDN对其博客经营得不好,我09年就离开了csdn,创建了酷壳。花了4500块钱,租了一个server。我离开那里主要有两个原因,一个是因为当时CSDN博客有一些性能上的问题,.NET架构嘛,大家都懂的。另外一个原因就是当时出现了很多博客营销的站点,有点像今天的36氪。好像那时候出现最早的叫煎蛋,那上面会有一些报纸上不会出现的国外的趣闻,是以博客的方式形成的媒体。这和常规的以日记形式出现的博客大不一样。煎蛋、有意思吧等这些博客让我看到了博客还能这样写,我觉得很好玩儿。而我当时也经常会去国外社区看一些文章,也能看到一些有意思的东西(因为我当时有了学习瓶颈,国内的网站已经满足不了我了)。心想,既然这些东西这么有意思,我为什么不自己开一个博客呢?<br>我老婆是学新闻编辑的,她鄙视我说,你的博客虽然有很多人读,但是只能算是个书呆子的博客,全是一些书呆子式的文章。我有些不服,我觉得技术人员不全是书呆子,我们这个圈子里也有很多有趣的东西,只不过是你不知道而已。于是我想弄一个有意思的、有娱乐性质的东西,里面都是技术圈里面有意思的事儿,但是很多技术圈以外的人也能看懂。一开始酷壳和CSDN博客的风格完全迥然,如果有技术性的文章我还会在CSDN上贴,但是后来我就完全抛弃了原来CSDN上的博客。酷壳的初衷是希望很多人都可以来上面发表一些东西,但是可能是我写得太多了,别人就被压制住了。<br>现在博客更新频率是一周一篇,一开始的时候一周三篇。磨刀不误砍柴工,总是有时间来做这些事的。我经常看书,需要把学到的东西整理成学习笔记。自从在CSDN上写博客的时候,就有这样的习惯了,而且又有“技术焦虑症”,害怕跟不上,所以维护博客的事对我来说是很自然的。<br>现在我已经不用自己再租服务器了,由于酷壳的访问量比较有保证,我提供了广告位,就免费得到服务器了。</p>
<h3 id="2-7、对于新技术的态度"><a href="#2-7、对于新技术的态度" class="headerlink" title="2.7、对于新技术的态度"></a>2.7、对于新技术的态度</h3><p>遇到新技术我会去了解,但不会把很大的精力放在这。这些技术尚不成熟,我只需要跟得住就可以了。我的团队自己想学什么我都不干涉,但是用到项目里的技术,必须是很成熟的,(技术应用)十年以上可能是一个门槛。有人说技术更新换代很快,我一点儿都不这样想。虽然有不成熟的技术不断地涌出,但是成熟的技术,比如Unix,40多年,C,40多年,C++,30多年,Java也有将近20年了……,所以,技术并不多啊。还有很多技术比如Ruby,Lisp这样的,它们没有进入主流的原因主要是缺少企业级的应用背景。<br>如果要捋一个脉络下来,70年代Unix的出现,是软件发展方面的一个里程碑,那个时期的C语言,也是语言方面的里程碑。当时所有的项目都在Unix/C上,全世界人都在用这两样东西写软件。Linux跟随的是Unix,Windows下的开发也是C。这时候出现的C++很自然就被大家接受了,企业级的系统很自然就会迁移到这上面,C++虽然接过了C的接力棒,但是它的问题是它没有一个企业方面的架构,否则也不会有今天的Java。C++和C非常接近,它只不过是C的一个扩展,长年没有一个企业架构的框架。而Java出现之后,IBM把企业架构这部分的需求接了过来,J2EE的出现让C/C++捉襟见肘了,后面还有了.NET,但可惜的是这只局限在Windows平台上。这些就是企业级软件方面语言层面这条线上的技术主干。</p>
<p>另外一条脉络就是互联网方面的(HTML/CSS/JS/LAMP…)。这条脉络和上述的那条C/C++/Java的我都没有放,作为一个有技术忧虑症的人,这两条软件开发的主线一定不能放弃。无论是应用还是学术,我都会看,知识不愁多。何必搞应用的和搞学术的分开阵营,互相看不起呢?都是知识,学就好了。<br>技术的发展要根植于历史,而不是未来。不要和我描述这个技术的未来会多么美好,用这个技术可以实现什么花哨的东西。很多常青的技术都是承前的。所以说“某某(技术)要火”这样的话是没有意义的,等它火了、应用多了咱们再说嘛。有些人说不学C/C++也是没有问题的,我对此的回应是:如果连主干都可以不学的话,还有什么其他的好学呢?极端一点,我要这么说:这些是计算机发展的根、脉络、祖师爷,这样的东西怎么可以不学呢?大部分学校虽然都会教授C,但是教得都不好。学校喜欢教微软的东西,老师好教学生好学。我不是说Windows不好,但那不是计算机文化的主干,那只是微软的主干、PC的主干。整个计算机文化的主干肯定是源起于Unix/C这条线上(注意,我说的是文化不是技术)。我也写过很多与Unix文化相关的文章,大家可以看看我写的“Unix传奇”。</p>
<h3 id="2-8、对于学校计算机科学教育的看法"><a href="#2-8、对于学校计算机科学教育的看法" class="headerlink" title="2.8、对于学校计算机科学教育的看法"></a>2.8、对于学校计算机科学教育的看法</h3><p>学校教的大部分都是知识密集型的技术,但是社会上的企业大部分都是劳动密集型的。什么是劳动密集型的企业呢?麦当劳炸薯条就是劳动密集型的工作,用不到学校教授的那些知识。如果有一天你不炸薯条了,而要去做更大更专业的东西,学校里的知识就会派上用场。有人说一个语言、一个技术,能解决问题能用就行了,我不这样认为。我觉得你应该至少要知道这些演变和进化的过程。而如果你要解决一些业务和技术难题,就需要抓住某种技术很深入地学习,当成艺术一样来学习。</p>
<p>我在“软件开发‘三重门’”里说过,第一重门是业务功能,在这重门里,的确是会编程就可以了;第二重门是业务性能,在这一重门里,技术的基础就很管用了,比如:操作系统的文件管理,进程调度,内存管理,网络的七层模型,TCP/UDP的协议,语言用法、编译和类库的实现,数据结构,算法等等就非常关键了;第三重门是业务智能,在这一重门里,你会发现很多东西都很学院派了,比如,搜索算法,推荐算法,预测,统计,机器学习,图像识别,分布式架构和算法等等,你需要读很多计算机学院派的论文。<br>总之,这主要看你职业生涯的背景了,如果你整天被当作劳动力来使用,你用到的技术就比较浅,比较实用,但是如果你做一些知识密集型的工作,你就需要用心来搞搞研究,就会发现你需要理论上的知识。比如说,我之前做过的跨国库存调配,需要知道最短路径的算法,而我现在在亚马逊做的库存预测系统,数据挖掘的那些东西都需要很强的数学建模、算法、数据挖掘的功底。<br>我觉得真正的高手都来自知识密集型的学院派。他们更强的是,可以把那些理论的基础知识应用到现在的业务上来。但很可惜,我们国内今天的教育并没有很好地把那些学院派的理论知识和现实的业务问题很好地结合起来。比如说一些哈希表或二叉树的数据结构,如果我们的学校在讲述这些知识的时候能够结合实际的业务问题,效果会非常不错,比如:设计一个IP地址和地理位置的查询系统,设计一个分布式的NoSQL的数据库,或是设计一个地理位置的检索应用等等。在学习操作系统的时候,如果老师可以带学生做一个手机或嵌入式操作系统,或是研究一下Unix System V或是Linux的源码的话,会更有意思。在学习网络知识的时候,能带学生重点学一下以太网和TCP/IP的特性,并调优,或是能做一个网络上的Pub/Sub消息系统或是做一个像Nginx一样的web server,那会更好。如果在学图形学的过程中能带领学生实践开发一个作图工具或是一个游戏引擎,那会更有意思。<br>总之,我们的教育和现实脱节太严重了,教的东西无论是在技术还是在实践上都严重落后和脱节,没有通过实际的业务或技术问题来教学生那些理论知识,这是一个失败。</p>
<h3 id="2-9、如何在压力下,享受技术带来的快乐"><a href="#2-9、如何在压力下,享受技术带来的快乐" class="headerlink" title="2.9、如何在压力下,享受技术带来的快乐"></a>2.9、如何在压力下,享受技术带来的快乐</h3><p>中国人中庸的思想,入世和出世,每天的工作就是入世。举个例子,在上海的时候,给交通银行做项目的时候,每周休息一天,早九点到晚十点,每天工作12个小时,这样的工作持续了一整年,没有节假日,项目上的技术也没什么意思。当时我晚上十点回到住处,还想学一些C++/Java和Unix/Windows的技术,于是就看书到晚上11:30,每天如此,一年下来学到很多东西,时间没有荒废,心里就很开心。我觉得当时是快乐的,因为有成长的感觉是快乐的。</p>
<p>现在的我,工作、写博客、养孩子,事情其实更多。我早上7:30起床,会浏览一下国外的新闻,hacker news,tech church,reddit,highavailability之类的站点,9点上班。晚上6、7点钟下班,开始带孩子。十点钟孩子睡了觉,我会开始重新细读一下这一天都发生了些什么事情。这个时间也有可能会用来看书。学习的过程我是不喜欢被打断的,所以从十点到十二点,家人都睡了,这正是我连续学习的好时间。可能从晚上11:30开始,我会做点笔记或者写博客。我现在对酷壳文章的质量要求比较高一些,所以大概积累一个星期的时间才可以生成一篇文章。每天我大概都在一两点钟才会睡觉。没办法,我有技术焦虑症。但是觉得这样的生活很充实,也很踏实。<br>另外,任何一门技术玩深了,都是很有意思的。有些人形成了一个价值取向,“我只做什么,绝不做什么”。前段时间有一个刚来亚马逊的工程师,他原来做的是数据挖掘推荐系统,后来公司重组要他做前端,他不肯。我觉得,前端后端都是编程,Javascript是编程,C++也是编程。编程不在于你用什么语言去coding,而是你组织程序、设计软件的能力,只要你上升到脑力劳动上来,用什么都一样,技术无贵贱就是这个意思。<br>回到问题,怎么才能享受到快乐呢?第一,入世和出世要分开,不要让世俗的东西打扰到你的内心世界,你的情绪不应该为别人所控,也不应该被世俗所污染,活得真实,你才会快乐。第二点就是要有热情,有了热情,你的心情就会很好,加班都可以是快乐的,想一想我们整个通宵用来打游戏的时光,虽然很累,但是你也很开心,这都是因为有了热情的缘故。</p>
<h3 id="2-10、做自己是最难的"><a href="#2-10、做自己是最难的" class="headerlink" title="2.10、做自己是最难的"></a>2.10、做自己是最难的</h3><p>我承认我活在我的精神家园里面。我推荐大家看一下王小波的《我的精神家园》,这篇文章对我的影响非常大。看了这篇文章,你就会明白我为什么要躺在自己的池子里,如果不想被这个社会所污染,就必须要躺在自己的池子里。做大众是很容易的,做自己是最难的。当你老了的时候,回想过去,如果你是为自己而活的,你总会觉得很踏实。可能有人会觉得我偏激,没关系,为什么要所有人看法都一致呢?世界因为不同而美丽,多元化的价值观并不冲突。</p>
<p>转载自:<a href="http://www.ituring.com.cn/article/9174">http://www.ituring.com.cn/article/9174</a></p>
</div>
<footer class="post-footer">
<div class="post-nav">
<div class="post-nav-next post-nav-item">
<a href="/pip%E4%BB%A5%E5%8F%8Aconda%E9%95%9C%E5%83%8F%E6%BA%90%E4%BF%AE%E6%94%B9%E5%8F%8A%E5%91%BD%E4%BB%A4%E4%BD%BF%E7%94%A8.html" rel="next" title="pip以及conda镜像源修改及命令使用">
<i class="fa fa-chevron-left"></i> pip以及conda镜像源修改及命令使用
</a>
</div>
<span class="post-nav-divider"></span>
<div class="post-nav-prev post-nav-item">
<a href="/effective-java-third-edition-notes.html" rel="prev" title="effective java third edition notes">
effective java third edition notes <i class="fa fa-chevron-right"></i>
</a>
</div>
</div>
</footer>
</div>
</article>
<div class="post-spread">
</div>
</div>
</div>
</div>
<div class="sidebar-toggle">
<div class="sidebar-toggle-line-wrap">
<span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
<span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
<span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
</div>
</div>
<aside id="sidebar" class="sidebar">
<div class="sidebar-inner">
<ul class="sidebar-nav motion-element">
<li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap">
文章目录
</li>
<li class="sidebar-nav-overview" data-target="site-overview-wrap">
站点概览
</li>
</ul>
<section class="site-overview-wrap sidebar-panel">
<div class="site-overview">
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
<p class="site-author-name" itemprop="name"></p>
<p class="site-description motion-element" itemprop="description"></p>
</div>
<nav class="site-state motion-element">
<div class="site-state-item site-state-posts">
<a href="/archives/%7C%7C%20archive">
<span class="site-state-item-count">37</span>
<span class="site-state-item-name">日志</span>
</a>
</div>
<div class="site-state-item site-state-categories">
<a href="/categories/index.html">
<span class="site-state-item-count">22</span>
<span class="site-state-item-name">分类</span>
</a>
</div>
<div class="site-state-item site-state-tags">
<a href="/tags/index.html">
<span class="site-state-item-count">45</span>
<span class="site-state-item-name">标签</span>
</a>
</div>
</nav>
<div class="feed-link motion-element">
<a href="/atom.xml" rel="alternate">
<i class="fa fa-rss"></i>
RSS
</a>
</div>
</div>
</section>
<!--noindex-->
<section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active">
<div class="post-toc">
<div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#%E5%B7%A6%E8%80%B3%E6%9C%B5%E8%80%97%E5%AD%90-%E9%99%88%E7%9A%93"><span class="nav-number">1.</span> <span class="nav-text">左耳朵耗子-陈皓</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%B8%80%E3%80%81%E4%B8%AA%E4%BA%BA%E7%AE%80%E5%8E%86"><span class="nav-number">1.1.</span> <span class="nav-text">一、个人简历</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%BA%8C%E3%80%81%E8%BD%B6%E4%BA%8B%E5%92%8C%E6%80%9D%E8%80%83"><span class="nav-number">1.2.</span> <span class="nav-text">二、轶事和思考</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#2-1%E3%80%81%E6%AF%85%E7%84%B6%E8%BE%9E%E6%8E%89%E9%93%B6%E8%A1%8C%E5%B7%A5%E4%BD%9C"><span class="nav-number">1.2.1.</span> <span class="nav-text">2.1、毅然辞掉银行工作</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2-2%E3%80%81%E9%80%89%E6%8B%A9%E4%B8%8A%E6%B5%B7%E9%97%AF%E8%8D%A1%E7%9A%84%E5%8E%9F%E5%9B%A0"><span class="nav-number">1.2.2.</span> <span class="nav-text">2.2、选择上海闯荡的原因</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2-3%E3%80%81%E5%B7%A5%E4%BD%9C%E6%8C%AB%E6%8A%98%E5%92%8C%E8%87%AA%E7%9C%81"><span class="nav-number">1.2.3.</span> <span class="nav-text">2.3、工作挫折和自省</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2-4%E3%80%81%E7%96%AF%E7%8B%82%E6%88%90%E9%95%BF"><span class="nav-number">1.2.4.</span> <span class="nav-text">2.4、疯狂成长</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2-5%E3%80%81%E5%8F%98%E5%BE%97%E4%B8%8D%E4%B8%80%E6%A0%B7"><span class="nav-number">1.2.5.</span> <span class="nav-text">2.5、变得不一样</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2-6%E3%80%81%E5%BB%BA%E7%AB%8Bcoolshell-cn%E7%9A%84%E5%8E%9F%E5%9B%A0"><span class="nav-number">1.2.6.</span> <span class="nav-text">2.6、建立coolshell.cn的原因</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2-7%E3%80%81%E5%AF%B9%E4%BA%8E%E6%96%B0%E6%8A%80%E6%9C%AF%E7%9A%84%E6%80%81%E5%BA%A6"><span class="nav-number">1.2.7.</span> <span class="nav-text">2.7、对于新技术的态度</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2-8%E3%80%81%E5%AF%B9%E4%BA%8E%E5%AD%A6%E6%A0%A1%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%E6%95%99%E8%82%B2%E7%9A%84%E7%9C%8B%E6%B3%95"><span class="nav-number">1.2.8.</span> <span class="nav-text">2.8、对于学校计算机科学教育的看法</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2-9%E3%80%81%E5%A6%82%E4%BD%95%E5%9C%A8%E5%8E%8B%E5%8A%9B%E4%B8%8B%EF%BC%8C%E4%BA%AB%E5%8F%97%E6%8A%80%E6%9C%AF%E5%B8%A6%E6%9D%A5%E7%9A%84%E5%BF%AB%E4%B9%90"><span class="nav-number">1.2.9.</span> <span class="nav-text">2.9、如何在压力下,享受技术带来的快乐</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#2-10%E3%80%81%E5%81%9A%E8%87%AA%E5%B7%B1%E6%98%AF%E6%9C%80%E9%9A%BE%E7%9A%84"><span class="nav-number">1.2.10.</span> <span class="nav-text">2.10、做自己是最难的</span></a></li></ol></li></ol></li></ol></div>
</div>
</section>
<!--/noindex-->
</div>
</aside>
</div>
</main>
<footer id="footer" class="footer">
<div class="footer-inner">
<div class="copyright">© <span itemprop="copyrightYear">2024</span>
<span class="with-love">
<i class="fa fa-user"></i>
</span>
<span class="author" itemprop="copyrightHolder">liang</span>
</div>
<div class="powered-by">由 <a class="theme-link" target="_blank" href="https://hexo.io">Hexo</a> 强力驱动</div>
<span class="post-meta-divider">|</span>
<div class="theme-info">主题 — <a class="theme-link" target="_blank" href="https://github.com/iissnan/hexo-theme-next">NexT.Muse</a> v5.1.4</div>
</div>
</footer>
<div class="back-to-top">
<i class="fa fa-arrow-up"></i>
</div>
</div>
<script type="text/javascript">
if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
window.Promise = null;
}
</script>
<script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>
<script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>
<script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>
<script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>
<script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
<script type="text/javascript" src="/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<script type="text/javascript" src="/js/src/utils.js?v=5.1.4"></script>
<script type="text/javascript" src="/js/src/motion.js?v=5.1.4"></script>
<script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.4"></script>
<script type="text/javascript" src="/js/src/post-details.js?v=5.1.4"></script>
<script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.4"></script>
</body>
</html>