一个新手如何在四个月内成为专业码农?

假设有一个大学生,通过四年学习获取了一张计算机科学的本科文凭;同时,他在学校也应该有一些编程经验。当他从学校毕业,刚踏入他的编程职业生涯时,你觉得他会获得一个怎样的称号么?

答案是:菜鸟。

我带新人已经有十多年了。根据我的经验,从一个菜鸟成长为一个能应付现实中复杂编程的码农,通常至少需要一年到一年半时间。而且,必须有专业的导师辅导,这个专业导师能力需要很强的能力,才不至于带偏。实际情况是,现实中码农每天都肯定会遇到的问题,学校的课程从未涉及的。只有在实际的工作中,才能学会如何处理这些问题。

正常人从初级码农到高级码农通常需要花4-5年时间。所以,是什么让你产生了只需要四个月就能成为专业码农的想法?

你现在最需要做的,是改变你的想法。的确,也许你只需要花4个月时间就能获得一份码农的工作,然后在工作中遇到各种大坑。如果你选择进入一个小作坊式的公司混日子应该也可以,但这与专业二字无关。我建议你调整你的目标;并且在接下来一年里参与一门线上或线下的教学课程,然后写一些难度适中的程序。「难度适中」是指,你感兴趣的,并且对你有一些压力但又不至于太大完全无法实现。说白了,放弃「创造另一个 Facebook」的想法。

在语言的选择上,建议选择 Python 或者 Smalltalk,这些语言入门较为简单。听说过某种编程语言与掌握编程语言是两码事。很明显,很多声称了解某种语言的人并没有真的学习过这种语言,充其量只是跟着入门教程走了一遍而已。

有很多人从没有越过这道门槛。根据我的经验,问出你这种问题的人中,有80%的人没能成功。通常,他们都止步于刚开始的快速入门和了解,并没有深入到某种语言中去。只有通过多年的实践,才能比较熟练的掌握编程技能,这个过程绝对不像你想象的那么简单。

几乎没人能仅仅只花4个月就达到专业码农的水平。所以,现实一点,先写一点比较小的程序,这样至少还有机会。如果专业码农这么好当的话,程序员这个职业就会变得非常廉价,事实上并非如此。

原文:How do I become a pro coder from total noob in 4 months? Where should I start?

UBNT ER-X 日常家用简单配置

开启upnp2

sudo su
configure
set service upnp2 wan pppoe0
set service upnp2 listen-on switch0
set service upnp2 nat-pmp enable
set service upnp2 secure-mode enable
commit
save
exit

路由器直接访问光猫

打开 eth0(config),在 Address 中改成 Manually define IP address 然后给 eth0 设置一个与光猫相同网段的 IP 地址,比如默认的光猫的 IP 地址是 192.168.1.1,那么你设置的 IP 地址可以是 192.168.1.2/24,后面的 24 是 C 类子网掩码 255.255.255.0 的意思。

然后,找到 Firewall/NAT – NAT,默认这里已经有一条记录 masquerade for WAN。如果没有说明你不是使用向导创建的 WAN-2LAN2 网络设置,重来。

点击 Add Source NAT Rule,新建一条 NAT 规则。

Description: 自定义,我这里设置的是 masquerade for LAN
Outbound Interface: eth0 (这里很重要,选择刚才设置的端口eth0)
Translation: Use Masquerade(重要)
Protocol: All protocols

保存后,既可以通过路由器下的设备直接访问光猫的管理界面。

算了,已经弃坑,当作交换机用了。

我的2016年总结

这几天鹏城的气温一路下降,穿着薄羽绒服也不敢轻易出门了。2015年没有写年终总结,2016年还是写一下吧,作为一种仪式。对于我这个阶段的普通人来说,在旁人看来,能拿出来说的成就,也就不外乎升职加薪这两样。今年是毫无成就的一年,既没有升职,也没有加薪。

我感到很惭愧,没有脸去丈母娘家吃年夜饭。还记得前几年有一次去老婆那边的爷爷奶奶家,岳父逼着我跟爷爷说当年的年终奖多少。那一年的年终奖,虽然绝对值不算多,但比现在的年终双薪还是多了好几倍。现在想来,实在是庆幸。如果是这两年去,就没办法说了。

继续阅读

闲鱼 App 地区选择功能可能的交互优化

闲鱼 App 最近更新了。选择地区时,自动定位当前地区的功能更明显了。如下图:

UI 设计上没话说,简约而清晰。然而我在用了一次之后就再也没用过这个功能,甚至让我感到非常难受:它知道我的位置,却不能帮助我快速选择。

因为我在闲鱼上淘物件的时候,通常会选择同城交易,但是我不会精确到必须在同一个行政区。所以对于我来说,闲鱼这种定位到区级行政范围的快捷方式有点「过度设计」了。如果闲鱼的后台统计数据显示出更多的用户是选择同区域交易,则这种设计倒是有几分道理。

不过,就算闲鱼有数据证明,选择同一个区级行政区域交易的用户最多,我们也还是可以做出一个更灵活的设计。

我粗略的画了一个,在设计上可以做出更明显的可点击暗示。这样设计后,偏好同省、同市或同区域的用户都可以快速选择。

戒烟日记

D0, 2016.11.28
开始戒烟。家里还有几根烟,今晚抽了一根。

D1, 2016.11.29
家里还有几根烟,今晚抽了一根。

D13, 2016.12.11

抽烟一只。在便利店门口转了好几圈,最终买了一包烟和一个打火机。抽了一支,感觉不怎么好。其余的19支扔掉了。

Python 随机生成手机号码

import random


def random_mobile_phone():
    firsts = ['133', '153', '180', '181', '189', '177', '173', '149', '130', '131', '132', '155', '156', '145', '185',
              '186', '176', '134', '135', '136', '137', '138', '139', '150', '151', '152', '158', '159', '182', '183',
              '184', '157', '187', '188', '147', '178', '184']
    phone = random.choice(firsts) + ''.join(random.sample('0123456789', 8))
    return phone

print(random_mobile_phone())

使用 Smart App Banners 提升应用安装体验

从 iOS 6 开始,Safari 有了 Smart App Banner 这项全新的特性。有了这项新特性,网站能通过标准化的方法,更好的引导用户从网页转向 App Store 下载应用。

smartbanner_2x

与其他方法相比,使用 Smart App Banner 能极大地提升用户的浏览体验。Smart App Banner 在所有应用到这项技术的网站上的外观都保持了统一的风格。这种风格有助于提升用户的信任感,当用户看到 Smart App Banner 时,将确信他们点击按钮后会跳转到 App Store,而不是什么其他的广告网站。与那些打断浏览体验的全屏广告相比,用户更容易接受 Smart App Banner 这种顶部的广告。同时,用户能够通过 Smart App Banner 上明显的关闭按钮,轻松的关掉这个提示;当用户以后再访问这个页面时,Smart App Banner 也不会再出现。

继续阅读

多多记账:超简单语音记账APP

作为一个月光族,我时常思考:钱都去哪儿了。于是尝试了不少记账App,他们要么功能太过复杂,比如随手记,各种账本明细、账户平衡让人头疼;要么操作繁琐,在手机上打字终究不是一件让人愉悦的事情。所以一直没能把记账这个好习惯坚持下来。

直到在App Store首页推荐发现了多多记账,用嘴说话就能自动分类记账,能满足基本的流水账需求。

继续阅读