免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 42367 | 回复: 44

[分享] 没有天赋一样可以成为顶级程序员!像程序员一样思考!(获奖名单已公布-9-11) [复制链接]

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
发表于 2013-08-14 14:40 |显示全部楼层
获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-4098339-1-1.html

你是否在编写程序时感受到挣扎,即使觉得已经理解了自己所使用的编程语言?
你是否阅读了一本编程书籍的某一章并能够顺利理解,却无法把自己所读到的东西应用于程序中?
你是否能够理解自己在线所阅读的一个程序,甚至能够把每行代码所完成的任务告诉其他人,但是自己在接到一个编程任务后,却面对文本编辑器的空白屏幕大脑一片空白?

这就说明,你的程序员思维还没用完全运作起来!什么是程序员思维,就是以程序员的思路来考虑事情。
也许下面这个小故事能够帮你理解什么是程序员思维:
老婆给当程序员的老公打电话:“下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。”当晚,程序员老公手捧一个包子进了家门。。。老婆怒道:“你怎么就买了一个包子?!”老公答曰:“因为看到了卖西瓜的。”

没有超常天赋对于成为程序员而言并不是致命的。程序员的技能和思维都是可以训练的。

本期话题:
1、您平时是如何训练您的程序员技能和思维的?
2、举个例子,说明您在程序设计中遇到的问题并如何运用程序员思维来解决的。
2、作为老鸟,你对程序员新人有何好的建议?(别说转行啥的啊:)

本期嘉宾:
ChinaUnix论坛Linux编程环境版版主:duanjigang
ChinaUnix论坛Linux编程环境版版主:crazyhadoop

活动时间:
8月13日-9月3日

活动奖品:
分享内容最有价值的Cuer,可获《像程序员一样思考》一本,共五本!

奖品简介:

    原书名: Think Like a Programmer
    原出版社: No Starch Press

    作者: (美)V.Anton Spraul   
    译者: 徐波
    出版社:人民邮电出版社
    ISBN:9787115316585
    上架时间:2013-5-30
    出版日期:2013 年6月
    开本:16开
    页码:238



论坛徽章:
0
发表于 2013-08-14 16:15 |显示全部楼层
书呢?怎么没有看见啊!

论坛徽章:
39
白银圣斗士
日期:2015-11-24 10:40:40酉鸡
日期:2015-03-20 14:15:44寅虎
日期:2015-03-20 14:13:59午马
日期:2015-03-20 14:13:16白羊座
日期:2015-03-20 14:12:54金牛座
日期:2015-03-20 14:12:09双子座
日期:2015-03-20 14:11:57巨蟹座
日期:2015-03-20 14:11:44狮子座
日期:2015-03-20 14:11:29亥猪
日期:2015-03-20 14:16:24戌狗
日期:2015-03-20 14:16:40申猴
日期:2015-03-20 14:17:05
发表于 2013-08-14 18:01 |显示全部楼层
1、您平时是如何训练您的程序员技能和思维的?
     写代码的时候,我会经常的想有没有更好的解决方法,有没有减少代码量的方法,能不能提高重用性,用抽象还是接口,怎么命名比较合适,参数数量怎么处理,在处理容器插入删除等操作时,会常常想是否加个临时容器、是用for还是用while等等这些,都渐渐的形成了一种习惯。有时候只是在脑海中短暂的思索,但有时候却能困扰我几天。
     游戏算不算?我比较喜欢玩数独,推箱子这一类的,哈哈
2、举个例子,说明您在程序设计中遇到的问题并如何运用程序员思维来解决的。
     统计log中的用户数。有一个应用会纪录用户的关键操作,并上传到服务器,服务端按天写入log。现在需要统计某一天有多少用户使用了应用。
     已知log里有很多信息,现在只需要提取用户标记,并去重就行了。怎么提取用户标记?首先看看log中有那些纪录是带用户标记的,通过比较选择一条有规律的纪录,写成正则表达式。
     用正则表达式提取所有匹配的纪录。提取的可以是整行匹配,也可以是只提取用户标记。考虑是提取整句还是标记。
     看看使用的纪录规则,最前面都带有时间,而且是精确到分钟的,而这个规则同用户可以出现多次,意思就是必须去重。去重当然是使用用户标记就行了,带了时间反而麻烦。
     所以提取只提取用户标记。
     提取之后用什么存储?Arraylist?Verctory?String[]?这些都是需要再次对存储结构去重复的。想想还有一个HashSet,自动去重,如果用HashSet的话,提取完用户标记就知道结果了
3、作为老鸟,你对程序员新人有何好的建议?
     在没有思路的情况下,尝试列举问题中的已知量和未知量,看看他们是否有联系,尝试推导,和反向推导。尝试写出解决问题的步骤,写完后看看是否可优化,可改进的地方,最好写出多种解决方案,对比那个最好,最合适当前的要求。多讨论。

论坛徽章:
39
白银圣斗士
日期:2015-11-24 10:40:40酉鸡
日期:2015-03-20 14:15:44寅虎
日期:2015-03-20 14:13:59午马
日期:2015-03-20 14:13:16白羊座
日期:2015-03-20 14:12:54金牛座
日期:2015-03-20 14:12:09双子座
日期:2015-03-20 14:11:57巨蟹座
日期:2015-03-20 14:11:44狮子座
日期:2015-03-20 14:11:29亥猪
日期:2015-03-20 14:16:24戌狗
日期:2015-03-20 14:16:40申猴
日期:2015-03-20 14:17:05
发表于 2013-08-14 18:03 |显示全部楼层
本期话题:
1、您平时是如何训练您的程序员技能和思维的?
2、举个例子,说明您在程序设计中遇到的问题并如何运用程序员思维来解决的。
2、作为老鸟,你对程序员新人有何好的建议?(别说转行啥的啊:)


两个“2”哦

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2013-08-14 18:14 |显示全部楼层
本帖最后由 forgaoqiang 于 2013-08-14 18:43 编辑

作为半吊子山寨程序员 发表下自己的看法吧 慢慢编辑内容 先抢个地板坐坐 请不要急哈~~
话说这次活动也不算是试读吧 又是没有样章的样子

1、您平时是如何训练您的程序员技能和思维的?
    个人是个经验至上论主义者,经验是最重要的,什么新的技术或者算法,哪怕是空无虚渺的思维方法都要去试一下才知道好不好,因此我认为最有效的方法是不断的尝试新事物,并作笔记,不断地整理,利用思维导图的方式,整理再整理,并书写每日技术总结,最终一些经验结合在一起,经常会对某些技术问题有茅塞顿开的感觉。
    自己摸着石头过河那是不靠谱的,湿鞋事小,掉河了溺水就歇菜了,因此要去学习一些别人的经验,图书是很好的途径,比如《程序员的思维训练--开发认知潜能的九堂课》这本书就很好的讲解学习的方法,程序员的思维问题【Ad:关于思维训练博文】,《黑客和画家》已经超越了程序员思维的范畴了,讲解了创业以及对待时代事物的看法,也是难得的指导书籍之一。
QQ截图20130814182120.jpg

2、举个例子,说明您在程序设计中遇到的问题并如何运用程序员思维来解决的。
    程序出问题,需要使用程序员的经验和思维来解决,一定要理清问题的逻辑顺序,这样才好一步一步的解决问题,比如今天我看到的关于 shell 的处理问题,一个shell文件接收一个参数,然后输出处理后的结果,然后在bash中直接调用没有问题,但是写到程序中的时候,就出现对参数内容截断的问题。

为了解决这个问题,就开始考虑替换传入的参数,发现传入的参数只要不包含空格,就能正常处理,于是就明白了问题所在了,开始想出多种解决方法。
①使用IFS更改定界符,不再是空格即可,比如 IFS='|'
②使用环境变量,先将要传入的参数export 成为环境变量,然后改掉程序,让程序从环境变量中读取参数,而不是直接 $1 传入
③对传入参数加上新的定界符,比如 本来 a="i like" 做 $a="'$a'" 这样的处理也能解决问题
④使用xargs -0 选项,保证空格不被当做定界符来处理
....

总之遇到问题后,找到根本问题所在,并且提出多种解决方法,这样有利于扩展思维,而不紧局限于一种解决方法。


2、作为老鸟,你对程序员新人有何好的建议?(别说转行啥的啊:)

哈哈 这个问题我说出来可能不太有说服力 本人是山寨出身,而且一直在做山寨的程序,目前也只有3年左右的程序经验,完全算不上老鸟【novice而已】而且语言非常混杂,完全是为了功能需要,一个程序中混杂3、5种语言都是正常的。

个人见解是,程序员总会走到头的,趁年轻多学东西,等有家庭之类的”套牢”之后估计就很难学习新技术了。做好转型准备吧,技术虽然有意思,但是也挺累,PM虽然遭众人恨,但是也是“嫉妒羡慕恨”,一个技术出身的PM也许没有那么糟。

楼主的转行标题倒是提醒了我,这个也是挺不错的选择,只是程序员眼中容易出现非黑即白的观点,转行要注意自己本身的态度,很多东西其实没有对错或者说对错根本无关紧要,可能我是非科班出身吧,和程序员讨论的时候发现他们总是要分出个谁对谁错,很容易影响人际关系。

PS:本人大学生物技术专业。。。大家不要笑






论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2013-08-14 20:09 |显示全部楼层
2 2 更健康嘛~~

回复 4# rover12421


   

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
发表于 2013-08-14 22:53 |显示全部楼层
天赋这种东西对于程序员来说,主要是指逻辑思维能力。
数学差一点的人,逻辑思维会相对弱一些。
其实程序员这个行业,涵盖范围太广了。
如果你是在大型的外包公司,程序员可能只是软件流水线上的一名蓝领程序员,按照严格的规范和要求编写符合规范的代码,仅此而已。
如果你是Web前端程序员,你整天打交道的是HTML或HTML5、CSS3、JavaScript,还有各种素材图片。其中,除了JavaScript会用到一丁点逻辑思维,基本上用不到多少“天赋”吧!

这里我想反问一句,什么是“顶级”程序员?“顶级”程序员的衡量指标是什么?
用钱、薪水来衡量?用出书的多少来衡量?用发明了某种语言、某种框架来衡量?
我个人感觉,没有放之四海而皆准的标准。你们同意吗?

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
发表于 2013-08-14 23:00 |显示全部楼层
不管怎么样,书还是值得一读的。这里我亲自整理了一个试读版,见附件:

像程序员一样思考(试读).pdf (2.83 MB, 下载次数: 967)

论坛徽章:
6
寅虎
日期:2013-10-10 21:59:16狮子座
日期:2013-11-12 09:24:41金牛座
日期:2013-12-14 17:02:23酉鸡
日期:2014-01-16 12:34:37技术图书徽章
日期:2014-02-15 12:52:31巨蟹座
日期:2014-05-17 14:09:52
发表于 2013-08-14 23:12 |显示全部楼层
这种书多半是泛泛而谈的吧?作为正式学习程序语言前的热身,象一些概论什么的。

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
发表于 2013-08-14 23:34 |显示全部楼层
fergon 发表于 2013-08-14 23:12
这种书多半是泛泛而谈的吧?作为正式学习程序语言前的热身,象一些概论什么的。


这个应该是这样的,不过是方法论吧,有的时候看看方法论还是挺有用的恶哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP