最危害程序员职业生涯的三大观念

蓦然回首自己做软件开发这个行业已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路!

路其实一直都在那里,只是我们看不到而已!

以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了这个位置上。想想有多少人对于自己将来要从事的职业和技术类型进行过深入思考和比较呢?当我跳出编码后,我开始思考和程序及程序员职业生涯相关的问题,最后发现,影响我们走入今天的困局的竟然是一些我们常常挂在嘴边的话(观念)。

今天,就为大家指出这几个重要的可能是你已经习以为常的观念,希望大家深入的思考一下这些观念对你的危害。如果你还年轻,刚从事软件开发这行没多久,也希望指出这些问题能让你跳过一些误区,不要像我一样多浪费五年时间。

观念一: “别管我,我只想一个人安静地写代码!”
是不是每天想安安静静地写代码时,IM窗口或者Email总会不合时宜地弹出各种提示,一会要开会啦一会要讨论需求了,再一会测试又来和你理论Bug了。世界这么喧嚣,还让不让人安静地写代码了?“别管我,我只想一个人安静地写代码”,这句话道出了多少程序员的心声啊,我们都想“静静”!不过今天我要告诉你,这种想法是多么的错误,并且严重影响了你职来生涯的发展。

如果你觉得自己的工作就是写写代码,那你最好三思。在软件开领域,我们大多数时候是与人而不是与计算机打交道。我们所写的代码首先是供人使用的,其次才是让计算机可以理解的,如果你只想和机器打交道,那写二进制的代码机器才能理解你。仔细想想自己一天的工作中有多少时间用在了与人互动上,收发邮件、会议、讨论(扯皮)等等,作为一个软件开发人员,你的工作就是与人打交道(其实几乎所有的职业都是这样)。

所以,虽然你是一个码代码的码农,看似你工作的重心是在码代码上,但其实你自己统计一下也会发现:你真正写代码的时间占你工作时间的比例并不高甚至有些人非常低。即使没有人打扰你,你仍然需要花很多的时间去设计(思考)怎么写你的代码,或者花很长的时间去看懂别人的代码然后找到Bug产生的原理,这个过程中看似你面对的是代码是机器,但其实你面对的是人(写代码的人和读你代码的人)。这还没有谈论怎么把业务的需求变成代码,你仍然需要了解一定的业务知识,当然最好的方式是先和业务、需求设计人员进行沟通,而不是闷头写代码。

所以认为做程序员可以不讲究沟通和谈话技巧,可以恰当地掩饰自己这方面的不足,那么你就太错特错了。如果你是因为自己与人交流的能力不足而觉得程序员是一个很合适的职业的话,那么你很难成为一个优秀的程序员。正如前面所说的一样,程序员写的代码仍然是需要和人交流的,如果只是一味的逃避自己不足的地方,写某方面代码的能力有可能可以大幅提高,但软件设计和开发的能力并不会轻易地提高。最后的软件开发,除了需要你有专业知识并懂得业务外,更重要的是需要你能和相互关系的系统和人进行有效的沟通。

所以,对程序员来说人际交往能力远比你想象的要重要!学会如何与人打交道,是你通向优秀程序员的第一步。

观念二:“这不关我的事!”
常常在工作中听到程序员在抱怨“测试又来找我了”、“需求又来找我了”,“客户又来找我了”等等,这些事都和自己的编码没有直接的关系,咋一看从职能分功上确实不关程序员的事。然而,这也是一个很严重的错误观念,它让你损失了很多成长的机会,而且也是你工作几年后走入程序员困境的主要原因。

大多数程序员(当然包括笔者)从职业生涯一开始就犯了几个严重的错误。截至目前,最大的错识就是没有把自己的软件开发事业当作一桩生意来看待。当你为了谋生一头扎进写代码的世界时,其实你和在建筑工地上搬砖的民工并没有多大的区别。

你职业生涯中必须要做的第一要务:转变你的心态,从被一纸“卖身契”束缚住的仆人转变为一各拥有自己生意的商人。你需要学会像企业一样思考,思考一下“作为一个企业我能提供什么”,就会对你如何考量自己的职业生涯有深远的影响。企业需要持续不断地改进和完善自己的产品,你也应该这样做,你的产品就是你的编程技能和服务。换到这个角度后,你就不会再抱怨工作中总被很多莫名其妙的人和事打扰,因为那些事都和你息息相关,或者都和你的生意有关联。积极地承担责任,至少能让你建立起良好的个人品牌,最终你会发现这个品牌的价值比公司给你开的高工资有用得多!

而且处理一些你看似不相关的事情,也会让你得到某方面的锻炼,这些事情中也可能就有某些行业的痛点问题,如果你解决了,其实一个产品原型就出来了。虽然你的时间被打扰了,但获得的技能和生意却是自己的。

记住:你工作的公司、客户和同事都有可能是你的生意。

观念三:“等我有钱了,我就XXX”
“等我有钱了,我就顾几个越南程序员帮我写无聊的代码”,“等我有钱了,我就天天吃食堂的自助餐”等等,这类台词在公司里经常能听到吧,不过一般这样说的人都不会有钱的,或者说很难等到他有钱时。也许看到这里你会产生一些困惑,这个有没有钱和我们做程序员有什么关系呢?

好,请复习一下观念二!

财务问题是程序员群体不善处理的一大问题!其实不单是程序员群体,整个大学教育培养出来的学生一般都不具备正确的财务知识和观念。钱不是万能的,但有钱却能解决很多问题,“人穷志短”实在是太精辟了。当你没有钱的时候,你会看重很多你不应该看重的东西,很多东西你可以用钱买来(比如技术和别人的经历)但你不愿意,因为你手上钱不多所以要省省是吧。结果你只能花自己的时间去琢磨,而等你琢磨透时商机已去!

有句话叫:能用钱买来的就是捡便宜!

而且因为没有钱你会更看重钱,最终会为了某个公司一个月多给你几千块的涨薪就跳槽,而忽视了去比较真正对你未来有帮助的成长机会!

财务自由是很多程序员非常向往的一个目标,就是我们说的“有钱了”的状态,但如果你真正问一个人什么是财务自由,多少钱才够财务自由?可能很多人都回答不上来,而且对于钱的量级每个人的答案也可能不一样。

我比较赞成的财务自由的解释是:所谓的财务自由,指的是某人再也不用为了满足生活必需而出售自己的时间了。

最终我们会发现,财务自由并不是我们努力工作的终极目标,而是我们成长过程的一个重要的里程碑!最终你把财务自由看淡,并看到它身后更远的东西,你才真正有可能实现财务自由。

所以,不要等,而是要不停的成长,包括技术和为人处事等等各方面。只要你在不停的成长,你就会一直在为自己积累很多东西(技术、人脉资源等),等这些东西达到一定量级你自然会“有钱了”!

总结
除了一些高精尖的技术问题,我们一般开发遇到的技术问题其实最终都不是我们成功的关键,而且技术是会更新迭代或是交替的,代码之外的软技能才是我们成长为一个熟练工之后应该着重考虑的。但一些你认为(别人也都这样认为)正确的关念,其实一直影响你并最终把你变成和大多数人一样碌碌无为。每个人的性格和所处环境不同,我们没有必要要求所有人都一样,但如果你想改变或者觉得目前的状态很困惑,不妨思考一下哪些观念是有问题的,是时候来升级一下你的操作系统(你的大脑)了!

我们再总结一下这三大错误观念:

认为程序员的主要工作不需要和人交流,不重视人际交往能力;
认为和写代码不相关的事都不是自己的责任,没有把工作当成自己的生意来对待;
认为有钱是终极目标,只重薪水不重成长;
如果你能意识到他们是错误的,并且对自己的职业生涯有极大的危害,那么这篇文章的作用也就达到了,至于如何解决这些观念带来的问题,需要你自己去践行了!

套用发哥的广告词与大家共勉:“成功?我才刚上路咧!”

转自:http://gad.qq.com/article/detail/7174812… 更多...

老骥伏枥,志在千里:如何在40岁后继续做软件开发?

导读:

  这是一个 42 岁的开发者所写经验分享文章.并且列出一些他 18 年多身为软件开发者的经验谈.许多部分看完后都会希望自己当时就能够了解,所以很推荐不论是新手或是老手都要好好阅读这一篇文章。

  故事很长,一切从 1997 年开始讲起.那是一个令人怀念的年代(FF7 发售,微软入股苹果,铁达尼号电影上映),那是作者第一年身为软件开发者的年份。当时他的第一份工作是从事 ASP 并且在微软的平台上面使用 EditPlus。十八年过去,作者一共做过六份工作,其中被炒鱿鱼两次,出过两本书,从事过不少演讲。他整理了他的一些心得,希望年轻的开发者(或是有志将软件开发作为终生志业的人)一些建议,条列如下:

1、Forget The Hype (忘记各种程序语言与架构的炒作与热潮)

  不少的新的语言与技术来来去去,作者不是要你别去学习新事物,而是不要因为有太多的新事物而恐慌或是自我放弃。持续钻研你目前在学习的,并且可以每年挑一些你有兴趣的项目深入了解。

  [反观我自己]:各种后端与前端语言来来去去,我把时间花在学习 Python(会持续), Ruby,Scala(会持续)与 Golang(会持续)。透过使用 Golang 可以有更多的时间去了解系统架构与直接面对问题,让写程序变得更有趣。

2、Choose Your GalaxyWisely(慎选你的星系)

  为了维持原文的意思,我还是使用星系这个字。这边指的是你学习跟从事的技术要慎选,举例而言,微软星系(泛指: .Net、C# ….)或是 Apple 星系(Objective C++、Swift …)。慎选你喜欢的星系,因为那会影响你未来的发展。

  [反观我自己]:过去十年主要针对微软星系,目前主要就是后端的 Ubuntu 星系 ,各种后端程序语言都是我目前主要的重点,当然还有 Docker 相关技术。… 更多...

你有什么道理后悔没有早点知道?

「后悔没有早点知道」的道理,常常让人刻骨铭心。
对我而言,每写一个道理,心里都会滚过一声长久的浩叹。
但愿这些曾经牵绊住我的道理,不再牵绊正在看这个回答的你。

【1】对于阶级和智力相近的人来说,在大学里的四年比大学前的十八年更重要。

我们总喜欢说,高考是人生最重要的考试之一,但我却想告诉大家,无论你考进了什么大学,请好好珍惜大学的四年,这可能是你人生中最自由、最容易掌控的四年。在这四年中你做过的事情,可能比你的高考成绩更重要。

这是因为,对于大部分人而言,在进入大学之前,是没有多少「选择」的,每个人都朝着差不多目标去努力,能掌控的东西太少了,我们的很多想法,都因为各种原因藏在心中。

但在大学里,你突然就可以掌控自己的命运了:
无数的「选择」出现在你的面前,埋藏在心中的「洪荒之力」也终于有机会去释放。

你可以选择去拼命学习,努力成为一个领域内的专家;
你可以选择去参加社团,认识很多值得认识的朋友;
你可以选择去各种单位实习,去早早地感受工作的魅力;
你可以选择去各处游行,去了解不同的人的生活状态;
你也可以选择去打扮自己,成为一个让别人看起来舒服的人……

但是,
请不要象征性地待在教室里,心却飘出窗外;
请不要一味地遵守所谓的纪律,别人做啥就跟着做;
更不要整天躺在寝室里,过着日夜颠倒的生活……

根据我的观察,很多人在进入大学的时候是差不多的,但经过了大学四年,差距大到了完全不在一个世界。

作为被大牛拉开差距的人,我终于悟出了一个道理:在大学,一定要去掌控自己的生活,而不要让生活带着你走。

错过了大学,要在工作之后追赶,难度要大得多。
在大学前,你缺少的是「选择」,在工作后,你缺少的则是「时间」。

【2】 尽早关注父母的理财状况,并努力形成自己的理财观。

一个事实是,在我国,绝大多数五十多岁的父母,几乎没有理财能力。
这是因为,在上世纪九十年代以及之前,也就是父母一辈最年轻力壮的时候,整个中国还很穷,富人极少,大多数人的财富观极其落后。而进入新世纪后,互联网发展太快,父母一辈的人年龄又大了,跟不上时代。

在一线城市,这种情况尤为明显:有些家庭在刚进入新世纪的时候,经济实力是差不多的,但到了2010 年后,家庭资产已经天差地别。原因嘛,你懂的。

如果你在中学和大学时代就早早地关注了父母的理财情况,因为自己对互联网信息的摄取能力更强,很多事情你可以做得比他们更好,这比让父母闭门造车要好得多得多。

而这份「更好」,会深深影响到你对职业的选择。

【3】 如果你要做一件困难而长期的事,请先去关注这件事情的最核心、最困难的部分。

我们总是喜欢立下宏伟的目标,但开始目标的人很多,完成目标的人却寥寥无几。

这是因为,有太多的人习惯于从最简单的部分开始做了。
从最简单的部分开始做,做着做着,你就会发现这件事情越来越难,但由于很多人心里没有做好准备,之前打的鸡血也渐渐被消磨干净,最终让人弃了坑。

但如果,你从最难的部分开始拆解(不是说要去完成,因为你可能不会,但是一定要拆解,知道自己完成它需要做哪些事情),你就会对这个任务的整体难度有了一个正确的认识,你就会知道,这个任务是否真的太难。

如果发现太难,你就可以早早地放弃,避免沉没成本;
如果发现不是特别难,那接下来也会越做越顺利,从而更容易完成任务。

【4】 如非必要,不要试图和比自己层次低的人争辩,但一旦争辩,更不要试图去主动和解。

我们本来就很难说服别人,如果对方的阶级、经历和眼界不如自己,说服他的难度会难上加难。… 更多...

CentOS 7 安装 GitLab

https://about.gitlab.com/downloads/#centos7
国内镜像:
https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/
vi /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key

sudo yum makecache
sudo yum install gitlab-ce

vi /etc/gitlab/gitlab.rb
external_url 'http://localhost' 修改为自己的IP地址或域名
如external_url 'http://testgitlab'

sudo gitlab-ctl reconfigure

在浏览器中访问http://testgitlab/,会自动跳转到root账户密码重置页面,输入新密码,登陆
更多...

CentOS 7 安装 GateOne

https://pip.pypa.io/en/latest/installing/
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

pip install 'tornado2.4,<2.5'
or
pip install 'tornado==2.4.1'

pip install Pillow

wget https://github.com/downloads/liftoff/GateOne/gateone-1.1.tar.gz
tar -zxvf gateone-1.1.tar.gz
cd GateOne
python setup.py install

cd /opt/gateone
./gateone.py

如果你想让其后台运行
systemctl start gateone

开机自动启动服务
systemctl enable gateone

查看操作记录(需会话结束之后才能显示):
/opt/gateone/logviewer.py /opt/gateone/users/ANONYMOUS/logs/20161130103312565927.golog
直接访问:
出于安全性考虑,最好修改一下端口和URL后缀
vi /opt/gateone/server.conf
port = xxx
url_prefix = "/xxx/"
"log_file_max_size": 104857600 // Which is the result of: 100 * 1024 * 1024 = 100MB
"log_file_num_backups": 10 // The maximum number 
更多...

MinGW 编译 libCurl

Win32 - Generic curl-7.50.3.zip
https://curl.haxx.se/download.html

解压
编译libcurl
cd lib
mingw32-make -f Makefile.m32

编译curl
cd src
mingw32-make -f Makefile.m32

复制 include\curl 到项目目录
复制 lib 目录下 libcurl.a libcurldll.a libcurl.dll 到项目 lib 目录下

修改Clion输出目录 Setting - Build - CMake,Build output path: bin
拷贝 
更多...