我们应该使用这种新技术,你看它多快、多好,又多么优雅,可以加快开发进度啊。

你看,我上周末实现了一个原型而且它还可以跑生产,这新技术就是这么牛 X。

……

说好的要让员工在公司里学习和成长呢?

……

呵呵,干里凉,辣鸡公司,我唔捞喇。

   
一开始准备做这个公众号的时候,就没有想过要把它做成一个入门普及的技术栈线路,所以并不会按照正常的学习路线来更新,简单整理了下思路,列举了如下认为有必要了解的知识点,以点打面,希望对大家ios开发有所帮助,图中所列是ios的基础技术,但是会尝试以源码或hook等方式,深入的去了解每个技术的实现原理,做到知其所以然,在此多说几句,扎实的基础是快速切入新技术和解决问题的根本,遇到模糊的问题,一定要搞清楚原因,这样才能快速成长,简单举个小例子,

在Web开发的道路上,每当心力交瘁深感学海无涯时,我就会安慰自己:坚持,总有一天我会打通任督二脉(前端+后端)

这样的对话熟不熟悉?作为开发,你有没有经历过想要在工作中引入新技术却阻力重重,而且很多时间就花在了这样的争论之中,最后还搞得心力交瘁。

    如果我定义一个char
str[5],当从控制台输入字符给str,gets(str),然后打印时,printf(“%dn”,str),超过5个字符,也可以打印出来,但是当超出位数过多时,就会crash,大家都知道这是一个典型的内存溢出问题,但是,为什么输入10个字符不会crash,但输入100(100是个变数,不一定是100,具体多少个crash,没有花时间去尝试)个字符就会crash?代码如下:

事实上,这不是一篇我的心得,而仅仅是把我自己的这个问题摆出来,希望通过文字帮助梳理下。
写和想有很大的不同,写出来后自己先读一遍,就好像新的想法跟自己对话,想法碰撞出新的思路,修改重新写,确实是一个帮助”深层次“思考、思考到底的好方法。
下面的文字都是删改N次后留下的最终的想法,相信后期回头来看时还会有不同的见解。

前 Etsy CTO Kellan
发表了一篇文章,他认为技术团队中沟通成本太高,有时候总是需要花时间与精力去讨论一些难以达成统一观点的问题,比如上边这种典型的“是否要引入一项新技术”。

澳门葡萄京官方网站 1

自从踏入互联网开发的道路(since 2013.3),
浩瀚,日新月异的开源技术让我这个有着学习计划强迫症的小白经常陷入这样的梦靥:计划多,实施少,学不完..

如何去避免呢?

澳门葡萄京官方网站 2

今天早上看了开源中国上的一篇博文你是否应该成为一名全栈工程师?

Kellan
介绍了自己已经使用了十多年的“问题列表”,在想要引入一项新技术之前把该列表的问题都思考一下,而不是去无休止地讨论,甚至于辞职。

大家可以先思考一下,下篇会解释原因。

其中作者给了这样的建议:

问题列表比较简短,思考过这些问题之后,也许就不用去争论了:

下面是我今后要更新的技术栈列表,暂时以此为准,因为时间仓促,后面有新的想法的时候,会再更新此列表.

如果想要向着全栈工程师的方向迈进,你应该掌握很多知识与技能,并且熟悉上面提到的各种组件。
此外,还要提升自己的个人沟通技能,这样才能管理并与
前端与后端开发者实现较好的协作。
好消息是未来对于每一类Web开发者来说都是光明的,无论是前端、后端,还是全栈。
要坚持学习一切有价值的东西;掌握新的框架、语言与平台;并且与开发者同事及最终用户保持高效的沟通。
在这种情况下,无论世界发生什么变化,你都会始终立于不败之地。

  • 我们到底是要解决什么问题? (永远不应该因为自己的目的而引入新技术)
  • 我们可以怎样用当前的技术栈解决这个问题?(如果答案是做不到,那么可能对这个问题没有进行深入思考;如果可以,那么思考下一个问题)
  • 我们当前的技术栈为什么不能以金钱、人员与时间等方面经济有效的方式去解决这个问题?
  • 我们是否明确了新技术会带来的新成本?(监控、员工培训、学习精力等)
  • 如果这项新技术可以替代目前的一些方案,那么我们能不能保证将来把相关的开发都迁移到这项新技术上?还是说我们针对这一个问题其实会有多种解决方案的尝试?(这个新技术路线会不会稳定下去?)
  • 有没有我们信任的人在使用该新技术?我们和他们谈过这个东西吗?他们是什么想法?新技术有什么是他们不喜欢的?(如果他们不讨厌它,那么他们还没有深入使用过)
  • 怎样低风险去尝试?
  • 有没有组织各个部门的高级别员工逐一回答上述各项,有没有文档记录?

澳门葡萄京官方网站 3

OK, 学不完的互联网技术是毋庸置疑的了,那我应该怎么做?

你的想法呢?

欢迎大家提供原创文章及建议,不足之处,多多指教,联系邮箱:960050250@qq.com

个人项目/团队项目 – 项目定位

程序员圈里经常讨论的”全栈工程师“,在我看来,首先要有个前提条件,”为什么“要做全栈?

  • (个人)纯粹为了学习实践互联网[最流行的新技术],那这个”全栈工程师“真的很难,要付出很大的时间和精力才跟得上这”潮流“,
    基础技能List:

    • Linux/Git/Pip/Npm/Composer…
    • Apache/Nginx
    • Mysql/MongoDb/Redis..
    • PHP/Python/NodeJS
    • Javascript/jQuery/ExpressJS/AngularJS/ReactJs…
    • HTML/HTML5
    • CSS/CSS3/SAAS
    • 浏览器开发工具与调试器
  • (个人)为了实现某个项目(假设只是个网站),那很容易,根据项目类型和你自己的技能情况确定架构,定”一个栈“即可

    • LAMP+Bootstrap 重后端轻前端
      • Linux/Git/Pip/Composer…
      • Apache/Nginx
      • Mysql
      • PHP/Python
      • 一天入门Bootstrap库
    • MEAN+ThinkPHP 重前端轻后端
      • Linux/Git/Pip/Npm…
      • MongoDb/Redis..
      • NodeJS/PHP
      • Javascript/jQuery/ExpressJS/AngularJS/ReactJs…
      • HTML/HTML5
      • CSS/CSS3/SAAS
      • 浏览器开发工具与调试器
      • 一天入门ThinkPHP框架
  • (团队)就是一个商业化的成熟项目,前后端都很重

    • 前端工程师[深入]挖掘最潮流的前端工具和库,对前端高性能负责;根据自身项目业务搭建自己的前端框架
      • 笔者能力有限,就不列清单了
    • 后端工程师[深入]研究高并发大流量以及数据性能,对后端高性能负责;根据自身项目业务搭建自己的后端框架
      • 笔者能力有限,就不列清单了

注意,上面列出的都是”基础技能“List,要是商业化的大型项目,清单长度和技能深度都要翻个番;
当然,大型项目中,每个工程师每天做的工作其实都只是项目中的一块业务,比如支付,那他还要去研究各个支付渠道的api

因此,要搞清楚自己目前的工作状况、项目状况、业务状况,给自己在团队/项目中定好位。

OK,我目前的定位是…

如果定不出来,每天的学习列表都完不成,那就理所当然了
因为你的目标是凌乱的,一会想实现自己的某个想法,一会想着公司的某块业务,一会想着朋友让帮忙做的网站..

(文/开源中国)    

前端?后端?全栈? — 技能定位

技能定位,能在很大程度上砍掉学习清单上的一部分(我认为是小于50%的)

比如定位了前端,就不要去过多深究Nginx,PHP..

反之定位了后端,就不要去深究AngulaJS,Backbone..

定位全栈…

我也说说全栈工程师

全栈工程师的流行,在我的认知里,主要有以下几方面促进因素:

  • NodeJS生态的流行让一部分前端工程师(尤其是后端通过掌握了Node转前端)自然定位自己为全栈
  • Bootstrap等非常强大的前端UI库让后端工程师很容易搭建起一个Web系统
  • 目前互联网创业风行,大多数创业公司在初期项目开发阶段,都会希望有一个全栈开发工程师坐镇以节约人力成本

前后端的分家,很大程度上我认为是因为“前端”分了出去,并在当今用户体验至上的环境中占着跟”后端”同等重要的地位。但另一方面,随着日新月异的技术发展,随着运维复杂度的提升,服务与框架都拥有自身的特性,
一个人很难掌握所有的技能。
有几年经验的前端,或者后端,从某一方面讲,都可以自称“全栈”,但从更严格的方面,很少有人能真正做到”与时俱进“的”全栈“

还记得最开始带我入门的一个后端开发跟我说过:样式/特效都没必要研究,别人一个wget就都拿到了,专心搞后端吧。
那是13年初,前端应该还没有特别火,不像现在各种招聘H5,H5,H5…所以,可以理解,当时后端会鄙视前端。但是现在,你还敢吗?
前端工程师无论在就业难度还是薪资方面,都压了后端一点点。。

说道鄙视“前端”,还有一种“伪前端“现象:在前端工程师人才缺口大的情况下,许多美工UI/刚毕业参加了培训班的,直接应聘做了”前端“;
不懂linux,不懂node,不懂sass的前端,说实话在二线城市如武汉,真的一抓一大把。

扯了这么多,如果还是要定位”全栈“(专指下面这一种),那就要做好每天增加3个小时学习时间的准备吧。。。

  • (个人)纯粹为了学习实践互联网[最流行的新技术],那这个”全栈工程师“真的很难,要付出很大的时间和精力才跟得上这”潮流“,
    基础技能List:

OK,我目前的定位是:别折腾,做一个安安静静的美后端吧..

坚定不移的几个原则

这几年的教训,我想也是宝贵的,在今后更是要坚定不移的遵循:

  • think your own way, 程序员还是要有自己的编程思想
  • write more, 好的作家都不会惜字如金吧
  • run code up, 而不仅仅是敲出来
  • show me your project,
    实践实践再实践,没有什么方式比参与一个具体的项目更能检验学习的有效性
  • resolve it now, 遇到问题现在就解决!不能拖!不能拖!不能拖!

学习的任何语言/框架/库,都要有一个”project”为载体;

无论是因为想要GET这个技能而想出的一个Project,还是因为有一个IDEA而去学习支撑Project的各种技能,都是OK的。

欢迎光临笔者的新博客:www.ganiks.me

写在最后

好久没写自己的想法,写这区区几百字居然花了我3个小时。其中多次想要写武汉光谷的互联网发展以及程序员是否应该做外包这样的话题,下次吧。