代码整洁之道 – 程序员的职业素养(片段摘抄)

代码整洁之道 – 程序员的职业素养

最好的软件开发人员都知道一个秘密: 美的东西比丑的东西创造起来更廉价, 也更快捷. 构建、维护一个美的系统所花费的时间、金钱都要少于丑的系统.
美的系统是灵活、易于理解的, 构建、维护它们就是一种快乐.

优秀的程序员都因为爱好, 孜孜不倦的写了好多根本没可能去实际执行, 为人类创造价值的程序.

专业主义

“专业主义” 有很深的含义, 它不但象征着荣誉与骄傲, 而且明确意味着责任与义务. 这两者密切相关, 因为从你无法负责的事情上不可能获得荣誉与骄傲.

专业主义的精髓就在于将公司利益视同个人利益. 专业主义就意味着担当责任.

开发的软件有 bug 会损害软件的功能. 因此, 要做得专业, 就不能就下 bug.
当然, 软件开发太复杂了, 怎么可能会没 bug 呢? 的确, 但最重要的是, 要对自己的不完美负责. 代码中难免会出现 bug, 但这并不意味着你不用对它们负责; 没人能写出完美的软件, 但这并不表示你不用对不完美负责.

所谓专业人士, 就是能对自己犯下的错误负责的人, 哪怕那些错误实际上在所难免. 职业经验多了之后, 失误率应该快速减少, 甚至渐进于零. 失误率永远不可能等于零, 但你有责任让它无限接近零.

成熟的专业开发人员知道, 聪明人不会为了发布新功能而破坏结构. 结构良好的代码灵活. 以牺牲结构为代价, 得不偿失, 将来必追悔莫及.

如果你希望自己的软件灵活可变, 那就应该时常修改它

你应该每周工作60小时. 前40小时是给雇主的, 后20小时是给自己的. 在这剩余的20小时里, 你应该看书、练习、学习, 或者做其他能提升职业能力的事情.

业精于勤. 真正的专业人士往往勤学苦干, 以求得自身技能的纯熟精炼. 只完成日常工作是不足以称为练习的, 那只能算是种执行性质的操作, 而不是练习. 练习, 指的是在日常工作之余专门练习技能, 以期自我提升.

学习的第二个最佳方法是与他人合作. 专业软件开发人员往往会更加努力地尝试与他人一起编程、一起练习、一起设计、一起计划, 这样他们可以从彼此身上学到很多东西, 而且能在更短的时间内更高质量地完成更多工作.

让新人融入团队的最好办法是和他们坐到一起, 向他们传授工作要诀. 专业人士会视辅导新人为己任, 他们不会放任未经辅导的新手肆意妄为.

每位专业软件人员都有义务了解自己开发的解决方案对应的领域. 开始一个新领域的项目时, 应当读一两本该邻域相关的书, 要就该领域的基础架构与基本知识做客户和用户访谈, 还应当花时间和业内专家交流, 了解他们的原则与价值观念.

雇主的问题就是你的问题. 你必须弄明白这些问题, 并寻求最佳的解决方案. 每次开发系统, 都应站在雇主的角度来思考, 确保开发的功能能真正能满足雇主的需要.

专业人士知道自己自负, 不会故作谦逊. 他们熟知自己的工作, 并引以为荣; 他们对自己的能力充满自信, 并因此用于承担由吧务的风险. 专业人士不是胆小鬼.

需要尽可能做到的事情

  • 让 QA 找不出任何问题
  • 要确信代码正常运行
  • 自动化 QA
  • 不会为了发布新功能破坏结构
  • 每次读代码, 都别忘了进行点滴的改善

说”不”

专业人士敢于说明真相而不屈从于权势。专业人士有勇气对他们的经理说“不”。

你怎么能对自己的老板说”不“呢?毕竟,他们可是你的老板啊!难道不该照你老板说的去做吗?

不应该照做。只要你是一名专业人士,那就不应该照做。

奴隶没有权利说”不“。劳工或许也对说”不“有所顾忌。但是专业人士应该懂得说”不“。事实上,优秀的经理人对于敢于说”不“的人,总是求贤若渴。因为只有敢于说”不“,才能真正做成一些事情。

你的经理要求你在明天之前完成登录页面,这就是他在追求和捍卫的一个目标,那就是尽他的工作职责。如果你明知第二天之前不可能完成登录页面,嘴上却说”好的,我会试试的“,那么便是你失职了。这时候,尽职的唯一选择是说”不,这不可能“。

最要说”不“的是那些高风险的关键时刻。越是关键时刻,”不“字就越具价值。

这一点应该不证自明。当公司存亡成败皆系于此时,你必须尽己所能,把最好的信息传递给你的经理。这往往意味着要说”不“。

我们都听说过具备”团队精神“是多么重要。具备团队精神,意味着恪尽职守,意味着当其他队员遭遇困境时你要出手相助。有团队精神的人会频繁与大家交流,会关心队友,会竭力做到尽职尽责。

专业人士常常会成为英雄人物,但这样的荣誉并非是他们所刻意追求的。他们之所以成为英雄人物,是因为他们出色地完成了任务,不但按时,而且符合预算。

说”是“

做出承诺,包含三个步骤。

  • 口头上说自己将会去做
  • 心里认真对待做出的承诺
  • 真正付诸行动

但是,我们是不是常常碰到这种情况,其他人(当然不会是我们自己!)在作出承诺时,其实并没有包含这三个步骤?

很少有人会认真对待自己说的话,并且说到做到。有些人在说话时是认真的,但他从来不会说到做到。而更多的人在做出承诺后,几乎从不会认真去履行诺言。

你只能承诺自己能完全掌握的事。比如,如果你的目标是完成一个还依赖与另一团队的模块,那么你无法承诺自己能够完成这个模块,还能实现该模块与其他团队所负责模块的无缝集成。但你能承诺自己会采取一些具体的行动来达到最终目标。

即使目标无法完成,你仍能全力前进,离目标更近些。而弄清楚目标能否达成这件事,便是你可以采取的努力行动之一。

这样的事情时有发生。有些事情先前你可能没预料到,这很现实。但是如果你仍然希望自己能够不负众望,那就赶紧去调整别人对你的预期,越快越好!

如果你无法兑现承诺,那么最重要的就是尽早向你的承诺对象发出预警,越快越好,越早越好。

你越早向各利益相关方发出预警信号,整个团队就越有可能抓住机会,中止并重新评估当前的活动,并决定是否采取些措施或做出些改变(比如调整优先级等)。这么一来,你仍有可能达成之前的承诺,或者,用另一个承诺来代替先前的承诺。

在此,有一点相当重要:如果你不尽早告诉他人可能的问题,就错失了让他们帮助你达成目标、兑现承诺的机会。

今天的程序员肯定得去面对诸如估算、确定最后期限以及面对面交流等沟通活动。做出承诺或许听来令人有些害怕,但他能帮助程序员解决在沟通中可能发生的不少问题。如果你能够一直信守承诺,大家会以为你“是一名严谨的开发人员”。在我们这行中,这也是最有价值的评价。

如果进度比预期的要慢一些,你可能会冒险放弃原则。如果不写测试,你或许可以更快完成任务。如果不做重构,不运行整套回归测试,或许也可以更快完成任务。

此时,如果是专业开发人员,就不会放弃底线。首先,这种假设本身就是错误的。即使不写测试,不做重构,省掉完整的回归测试,你也无法更快完成 任务。多年经验告诉我们,打破这些纪律和原则,必然会拖慢进度。

其次,身为专业开发人员,你有责任根据标准规范自身工作。代码必须经过测试,代码必须要有对应的测试代码。要确保代码清晰整洁,而且必须确保没有影响到系统的其他部分。

作为专业开发人员,你已经承诺会遵守和捍卫这些标准。你做出的其他所有承诺,都应该和这份承诺保持一致。

专业人士不需要对所有请求都回答“是”。不过,他们应该努力寻找创新的方法,尽可能做到有求必应。当专业人士给出肯定回答时,他们会使用正式的承诺,以确保各方面明白无误的理解承诺的内容。

编码

能够感知到错误非常重要。说明你已经能够非常迅速的获得反馈,能够更为快速地从错误中学习。要熟练掌握每项技艺,关键是要具备“信心”和“出错感知“能力。

编码是一项颇具挑战也十分累人的智力活动。相比其他类型的活动,编码更加要求聚精会神。因为在编码时你必须平衡互相牵制的多种因素:

  • 首先,代码必须能够正常工作
  • 代码必须能够帮你解决客户提出的问题
  • 代码必须要能和现有系统结合的天衣无缝
  • 其他程序员必须能读懂你的代码

而且,编码时无可避免地会受到各种干扰。当你无法全神贯注地编码时,所写代码就有可能出错。

如果感到疲劳或者心烦意乱,千万不要编码。强而为之,最终只能回头返工。相反,要找到一种方法来消除干扰,让心绪平静下来。

软件开发是一场马拉松,而不是短跑冲刺。你无法全程一直以最快的速度赢得比赛,只有通过保持体力和维持稳定节奏来取胜。无论是赛前或者赛中,马拉松选手都会调整好自己的状态。专业程序员也会同样仔细地保存好自己的精力和创造力。

流态区

关于高效率状态,大家已经写了很多,这种状态通常称为”流态“。在这种状态下,程序员会感到效率极高;在这种状态下,会感到“绝无错误”。因此他们 一直苦苦追求进入这种状态,并经常以能在那种状态下维持多久来衡量自我价值。

一些曾经进入这种状态但最终摆脱出来的人给出了一点忠告:“避免进入流态区”。这种意识状态并非真的高效,也绝非毫无错误。这其实是一种”浅层冥想“状态,在这种状态中,为了追求所谓的速度,理性思考的能力会下降。

在流态区,你可能能够敲出更多的代码。你会收获一种愉悦感或者征服感。问题在于,在流态区状态下,你其实放弃了顾及全局,因此,你可能会做一些后来不得不推倒重来的决策。在流态区写代码可能会快些,但是后面你将不得不更多地回头审视这些代码。

帮助

编程并非易事。越年轻的程序员对此可能越没有什么感觉。但是随着经验增长,必须小心谨慎地将系统分解为易于理解的小单元,同时使这些单元直接的关系越少越好,这并非易事。

编程很难,事实上,仅凭一己之力无法写出优秀的代码。即使你的技能格外高超,也肯定能从另外一名程序员的思考与想法中中获益。

因此,互相帮助也是每个程序员的职责所在。将自己封闭在格子间或者办公室里与世隔绝,有悖于专业的职业精神。你的工作不可能重要到你不能花一丁点时间来帮助别人。事实上,作为专业人士,要以随时能够帮助别人为荣。

沟通

专业开发人员既要做好开发,也要做好沟通。“输入糟糕,输出也会糟糕”对程序与同样通用,所以职业程序员会重视与团队及业务部门的沟通,确保这种沟通的准确、流畅。

开发方与业务方之间最常见的沟通是关于需求的。业务方描述他们认为自己需要的东西,程序员按照自己理解的业务方表达的需求来开发。至少从理论上来说,应该是这样。但在现实里,关于需求的沟通是及其困难的,其中会表现出各种问题。

做业务的人和写程序的人都容易陷入一个陷阱,即过早进行精细化。业务方还没有启动项目,就要精确知道最后能得到什么;开发方还没有评估整个项目,就希望精确知道要交付什么。双方都贪求不现实的精确性,而且经常愿意花大价钱来追求这种精确。

在工作中,有一种现象叫做观察者效应,或者不确定原则。每次你向业务方展示一项功能,他们就获得了比之前更多的信息,这些新信息反过来又会影响他们对整个程序的看法。

最终结果就是,需求完成的越精细,就越容易被忽视,系统因此也谈不上完工。

首先,即使拥有全面准确的信息,评估也通常会存在巨大的变数。其次,因为不确定原则的存在,不可能通过反复推敲实现早起的精确性。需求是一定会变化的,所以追求那种精确性是徒劳的。

避免过早精细化的方法是尽可能的推迟精细化。专业人员直到到手的开发的前一刻才会把需求具体化。但是,这可能造成另一个问题:迟来的模糊性。

业务方常常会提出不同意见。这时候他们会发现,相比去解决分歧,更好的办法是换一种说法,所以会寻找各方都同意的关于需求的表述,而不是去解决争端。

需求文档的每一点模糊之处,都对应着业务方的一点分歧。当然,模糊不只来自于分歧或争论。有时候,业务方会想当然地认为看文档的人懂得自己的意思。

验收的目的是沟通、澄清、精确化。开发方、业务方、测试方对验收测试达成共识,大家都能够明白系统的行为将会是怎样。各方都应当记录这种准确的共识。在专业开发人员看来,与业务方、测试方协同工作,确保大家都明白要做什么,是自己的责任。

验收测试都应当自动进行。在软件开发的周期中,确实有时候需要手动测试,但是验收测试不应当手工进行,原因很简单:要考虑成本。

专业人员会避免手动测试。相比手动测试,自动化测试的成本非常低,让人手工执行测试脚本不划算。专业开发人员认为,实现验收测试的自动化是自己的责任。

请务必确保在持续集成系统中,单元测试和验收测试每天都能运行好几次。整套持续集成系统应该由源代码管理系统来触发。只要有人提交了代码,持续集成系统就会开始构建,并运行所有的测试,测试结果会用电子邮件发给团队的所有人。

保持持续集成系统的时刻运行是非常重要的。持续集成不应该失败,如果失败了,团队里的所有人都应该停下手里的活,看看如何让测试通过。在持续集成系统里,失败的集成应该视为紧急情况,也就是“立刻终止”型事件。

测试

尽管公司可能设有独立的 QA 小组专门测试软件,但是开发小组仍然要把“QA 应该找不到任何错误”作为努力的目标。

当然,这个目标定得有点高。毕竟,如果有一群聪明人联合起来绞尽脑汁找出产品中所有的瑕疵和不足,他们肯定是能够找出一些问题的。对 QA 找到的每一个问题,开发团队都应该高度重视、认真对待。应该反思为什么会出现这种错误,并采取措施避免今后重犯。

会议

会议的成本非常高。如果你去算算会议的成本,你会很吃惊。

关于会议,有两条真理:

  • 会议是必须的
  • 会议浪费了大量时间

受到邀请的会议没有必要全部参加。参加的会议太多,其实只能证明你不够专业。你应该理智的使用时间,所以必须谨慎选择,应当参加哪些会议,礼貌拒绝哪些会议。

邀请你参加会议的人并不负责管理你的时间,为时间负责的只有你。所以,如果你收到会议邀请,务必确保出席会议可以给自己目前的工作带来切实且显著的成效,否则不必参与。

还有些时候,有职权的人(比如其他项目的高级工程师或者主管)命令你必须参加某些会议。这时候应当问问自己,他们的职权是否比自己的工作计划更重要。同样,自己团队的同事和领导也可以帮忙决策。

领导的最重要责任之一,就是帮你从某些会议脱身。好的领导一定会主动维护你拒绝出席的决定,因为他和你一样关心你的时间。

如果会议让人厌烦,就离席。仔细管理自己的时间是你的责任。如果你发现参加某个会议是在浪费时间,就应当想个礼貌的办法退出来。

重要的是,你应当明白,继续待在会议室里是浪费时间;继续参加对你没有太多意义的会议,是不专业的行为。

优先级

专业人员评估每个任务的优先级,排除个人的喜好和需要,按照真实的紧急任务来执行任务。

专业开发人员会用心管理自己的时间和注意力。他们知道优先级错乱的诱惑,他们也珍视自己的声誉,所以会抵制优先级错乱。他们永远有多种选择,永远敞开心扉听取其他解决方案,他们从来不会执拗于某个无法放弃的解决方案。他们也时刻警惕着正在暴露的泥潭,一旦看清楚,就会避开。最糟糕的事情,莫过于看到一群开发人员在徒劳地拼力工作,结果却陷入越来越深的泥潭。

预估

预估是软件开发人员面对的最简单,也是最可怕的活动之一了,预估影响到的商业价值巨大,关乎声誉,也给我们带来了很多的苦恼和挫折。预估是业务人员和开发人员之间最主要的障碍,横亘在双方之间的种种不信任,几乎由它引发。

什么是预估

问题在于,不同的人对预估有不同的看法。业务方觉得预估就是承诺。开发方认为预估是猜测,两者相差迥异。

专业开发人员不随便承诺,除非他们确切知道可以完成。道理就是这么简单。如果你被要求承诺做自己不确定的事情,那么就应当坚决拒绝。如果要求你承诺在某天完成,但是需要每天加班,周末加班,取消休假,那么最后的决定取决于你;不过,不要违背自己的意愿去勉强。

承诺是关于确定性的。其他人会把你的承诺当真,据此拟定计划。如果不能兑现承诺,他们的损失,以及你的声誉受到的影响,都是巨大的。不能兑现的承诺也是一种欺骗,只不过比明目张胆的欺骗好一点。

预估是一种猜测。它不包含任何承诺的色彩。他们不需要做任何约定。预估错误无关声誉。我们之所以要预估,是因为不知道到底要花多少时间。

不幸的是,大多数软件开发人员都很不擅长预估。这不是因为他们没有掌握关于预估的诀窍——根本没有这样的诀窍。预估的偏差总是很大,原因在于我们并不理解预估的实质。预估不是个定数,预估的结果是一种概率分布。

专业开发人员能够区分预估和承诺。只有在确切知道可以完成的前提下,他们才会给出承诺。此外,他们也会小心避免给出暗示性的承诺。他们会尽可能地说明预估的概率分布,这样主管就可以做出合适的计划。

压力

即使有压力,专业开发人员也会冷静果断。尽管压力不断增大,他仍然会坚守所受的训练和纪律,他知道这些是他赖以战胜最后期限和承诺所带来压力的最好方法。

在压力下保持冷静是最好的方式,便是会规避导致压力的处境。规避的方式也许无法完全减除压力,但是可以大大降低压力并缩短高压力期的时间。

业务人员可能在没有事先咨询我们的情况下就向客户做出了承诺。发生这种事情,出于责任感我们必须主动帮助业务方找到方法来兑现这些承诺,但是一定不能接受这些承诺。

专业人士总会千方百计地帮助业务方找到达成目标的方法,但并不一定要接受业务方代为做出的承诺。最终,如果我们没有兑现业务方所作出的承诺,那么该由当时做出承诺的人来承担责任。

如果因为没能兑现承诺而导致业务失败了,你也将无法按时拿到薪水,这种情况下可能能感受不到压力。但是,如果此前你已经表现得十分专业,那么至少在找新工作时可以昂首挺胸问心无愧。

快速前进确保最后期限的方法,便是保持整洁。专业人士不会为了快点前进而乱来。他们明白“快而脏”是自相矛盾的说法。脏乱只会导致缓慢!

协作

大多数软件都是由团队开发出来的。当团队成员能够十分专业地互相协作时,整个团队是最为高效的。单打独斗与游离与团队之外都是不专业的表现。

专业程序员的首要职责是满足雇主的需求。这意味着你要和你的经理们、业务分析师们、测试工程师们和其他团队成员很好地协作,深刻理解业务目标。这并不是说你必须要成为业务方面的专家,而是说你需要理解手头上正在编写的代码的业务价值是什么,了解雇你的企业将如何从你的工作中获得回报。

专业程序员最糟糕的表现是两耳不闻窗外事,只顾一头将自己埋在技术堆里,甚至连公司业务火烧眉毛行将奔溃了也不闻不问。你的工作职责就是要让业务免于陷入困顿,让公司可以长久发展下去。

因此,专业程序员会花时间去理解业务。他们会和用户讨论他们正在使用的软件,会和销售人员与市场人员讨论所遭遇的问题,会和经理们沟通,明确团队的短期目标和长期目标。

简而言之,他们会将注意力放在与业务同舟共济上。

程序员与程序员

程序员直接通常很难密切合作,这就会带来一些不小的问题。

代码个体所有

不正常的团队最糟糕的症状是,每个程序员在自己的代码周边筑起一道高墙,拒绝让其他程序员接触到这些代码。我曾在需要地方看到过,不少程序员甚至不愿让其他程序员看见他们的代码。这是引发灾难的“最有效秘诀”。

协作性的代码所有权

将代码所有权的各种隔断全部打破、由整个团队共同拥有全部代码的做法,相较于此则要好得多。

团队中每位成员都能签出任何模块的代码,做出任何他们认为合适的修改。专业人士期望拥有代码的是整个团队,而非个人。

专业开发人员是不会阻止别人修改代码的。他们不会再代码上构造所有权的潘篱,而是尽可能多地互相合作。他们通过合作来达到学习的目的。

结对

“结对编程”是解决问题最有效的方法。专业人士会结对工作。

专业人士结对工作,还因为这是分享知识的最好途径。专业人士不会仅凭一己之力从零开始创建知识,而是通过互相结对来学习系统的不同部分和业务。他们明白,尽管每位团队人员都有自己的位置,但是在紧要关头,每位团队成员也要能够接替其他人的位置。

专业人士之所以结对,是因为结对是复查代码最好的方式。系统中不应该包含未经其他程序员复查过得代码。代码复查的方法很多,但大多数方法效率都极其低下。最有效率且最有效果的代码复查方法,就是以互相协作的方式完成代码编写。

团队与项目

形成团队是需要时间的。团队成员需要首先建立关系。他们需要学习如何相互协作,需要了解彼此的批号、强项、弱项,最终,才能凝聚成团队。

有凝聚力的团队确实有些神奇之处。他们能一起创造奇迹。他们互为知己,能够替对方着想,互相支持,激励对方拿出自己最好的表现。他们攻无不克。

成员克服个体差异,默契配合,彼此信任, 形成真正有凝聚力的团队,是需要一些时间的,可能需要6个月,甚至1年。但是,凝聚力一旦真正形成,就会产生一种神奇的魔力。团队的成员会一起做计划,一起解决问题,一起面对问题,一起搞定一切。

团队已经有了凝聚力,但却因为项目结束了就解散这样的团队,则是极其荒谬的。最好的做法是不拆散团队,让他们继续合作,只要不断地把新项目分派给他们就行。

专业的开发组织会把项目分配给已形成凝聚力的团队,而不会围绕着项目来组建团队。一个有凝聚力的团队能够同时承接多个项目,根据成员各自的意愿、技能和能力来分配工作,会顺利完成项目。

团队比项目更难构建。因此,组件稳健的团队,让团队在一个又一个项目中整体移动共同工作是较好的做法。并且,团队也可以同时承接多个项目。在组建团队时,要给于团队充足的时间,让他们形成凝聚力,一直共同工作,成为不断交付项目的巨大引擎。

Rewrite 天王寺瑚太朗 墓志铭

在很久以前, 有那样一位青年
他是一个善良的人, 像所有同龄人一样承受着无比的焦虑

他曾是一名军人
他曾懊悔的扣下扳机, 却从未向权威屈膝
他杀人如麻
沉重的罪孽使他无颜以对世人

我尊重他的理想并追随他的足迹
然而有一件事你理应知晓
如今, 这颗伤痕累累行星已然消耗殆尽
人们失去了对生存的渴望, 陷入了绝望的深渊

这世间仍存在着一缕希望的光芒
不是别人, 那便是他
我们曾是他的拥护者
延续他的梦想, 将那被专政所垄断的科学技术由网络公诸于世

每一个人都可以阅读
任何组织与机构都无法阻止
大多读者将之视为荒谬无稽之谈
学术权威机构对它不屑一顾
但是我们相信, 唯有这些真相能够拯救这个世界
人类所能得到的, 与工业革命相比肩的最后火种
存在于我们的灵魂之中

广阔无际的生命的海洋
小鬼, 龙, 野兽, 天使与精灵, 都沉睡在那无边的黑暗之中
我们定会将一切征服一切
神话时代终将会到来
或许这是一种亵渎
即便如此我等亦将被这颗行星所宽恕
如同宽恕诋毁母亲的孩子那般

然而事实绝非如此
这是一条洒满光明之路, 唯一的, 通向美好未来的希望之路
请谨记
这条路是由那位无名军人所开辟
愿这段故事被人们世代传颂, 跨越千年
愿天主的恩宠, 与吾等同在–

2015年终总结与2016年终展望

转眼间, 一年的时光又过去了. 在这最后一刻, 稍微总结一下吧!

2015年做到的事情

  • 在2015年的展望中, 我说好了要努力, 虽然不够努力, 但还是勉强的成为了一名程序员.
  • 在2015年, 我来到了北京, 这是真正意义上的出来闯荡了…
  • 熟悉了一点Android的开发

在过去的一年中, 从天水到西安然后到北京, 从无知到了解然后到可以做一点事情, 工资从之前的一两千到现在的七八千. 好像在飞一样, 但是, 在这急速的背后是巨大的空虚与压力. 我在这压力中努力 坚持. 唯有不断的给自己安慰, 然后向前爬行!

当然, 也有没做到的事情: 英语还是一如既往的糟糕, 态度也没有比以前好多少, 时间的价值也没有提高, 自己还是没有喜欢上自己.

2016年要做的事情

2016年马上要到来了, 其实数字什么的,意义并不大. 但是, 时间却对每个人都很重要.

2016年是我和未来的自己交流的一年, 我会与未来的我交流学习打赌互相帮助.

  • 这个博客将只写一些生活方面的 , 所有的技术类的都会转移到github pages上面(虽然我很少写技术博客, 但是明年我会努力的
  • 心中有一个时间管理的想法, 我会努力的做出来, 至少自己能够使用. (当然, 需要的技术栈是全端, 绝对的独立开发
  • 学一个服务器方向的语言(计划是python, 能做的事情很多, 也比较好掌控, 而且是另一种风格的
  • 稍微学点英语( 今年大多数时候都没去学英语, 毕竟刚入行, 各方面的压力比较大, 等明年稳定之后, 就是需要去提高了, 英语是我过去唯一的伤痛
  • 加入一个业余或者兼职的团队, 跟随大牛学习
  • 多和家人沟通
  • 争取买个MacBook(大牛们好多都是这样, 毕竟win不爽, linux相对来说不够方便, 而且也懒得折腾
  • 还上所有欠的债( 毕竟之前没有任何积累, 直接凭空打入编程界, 所有的资源都是借来的, 所以导致现在签了一屁股债, 有时候真的亚历山大
  • 最后, 如果可以的话, 找个女朋友(这个真的是非常困难, 感觉比学英语还困难啊

时光的墓志铭

  • 偶尔的刺激是可以去追求的,  但是你首先要懂, 这个东西为什么这么刺激
  • 同事真的很难成为朋友, 除非公司氛围真的非常适合友情
  • 人际交往真的非常难, 没必要刻意去追求, 顺其自然
  • 有时候, 一年只需要交一个朋友就足够了
  • 当你在大牛的圈子外的时候, 不要放弃, 或许有个机会就能使你进入, 就算是无法交流也没有关系, 至少有机会
  • 不要放弃任何一个虐待自己的机会, 你会感觉挺爽的, 但是, 记得不要让自己受伤
  • 节约资源, 不论是现在的, 还是未来的, 因为资源意味着需要努力去获取, 要付出代价(甚至有些无法再生

记一次非常逗比的错误, 以及惊险刺激的排错

在某一次重启之后, 我输入了正确的密码也无法登陆我的Ubuntu了,不论是账号登陆,还是游客登陆, 全部不起作用。

我非常惊恐, 因为电脑里面还有我刚写的代码, 以及辛辛苦苦配置的环境。难道就这么毁于一旦了?

思考

有几个可能:被黑了(我随便下的一些程序代码,以及我的服务器好久不用了, 但我还是连上去了), Ubuntu又挂了(我用的14.04 STL的Ubuntu Kylin), 键盘字符集输入错误?

排错

刚开始, 我是搜索的Ubuntu忘记密码怎么办?Ubuntu如何进入单用户模式?

blog.sina.com.cn/s/blog_a2d4803001013vqo.html 百度第一的链接, 你根本不知道他在说什么, 因为现在的Ubuntu 已经不是过去的Ubuntu了,GRUB也换了

很多链接都是直接抄别人的, 图片和文字完全对不上, 搬运信息的更本不知道操作性,就随便复制粘贴, 然后当做一篇文章, 更本没想过看的人该如何操作。

我目前的解决方法也找到了, 实验了很多。我也就直接说正确方法了。

  • 一般需要进入GRUB界面, 我是用Shift进入的
  • 然后在启动项上面按E,进入编辑(好多文章写的是在recovery上面,但是我实际是怎么样都可以的,如果不行的话,可以再考虑进recovery
  • 然后找到 linux /boot/*****  ** ** ro *** 一般是这样的(当时操作截图也没有
  • 将ro 改为 rw 然后 在最后面加上 single #注意:我加上之后进去是一个光标一直在闪,或许是我的错误比较特殊,然后 我又测试了在后面加上 init=/bin/bash 之后才进入shell的
  • 之后就是passwd了 , 或许会有read-only错误,可以试试( mount -rw -o remount /
  • 但是我的错误是 Authentication token manipulation error. password unchange
  • 然后, 就是我逗比的时刻了, 我查了好久, 最后发现, shadow文件被我和 shadowsock配置文件一起删掉了  rm -rf shadow*        QAQ
  • 不过幸好, /etc/passwd 文件没有删, 然后我查了一下, 用 pwconv 重新生成了 shadow
  • 然后, 重新启动, 一切正常 QAQ

工作一月纪事

好吧, 工作已经开始了一个月了, 前两天刚拿到整月的薪水. 感觉还不错!

从6月份决定的借钱&贷款去培训, 到努力的找工作, 然后到第一个需求的实现, 最后是偶尔一段时间的轻松.  从天水到西安再到北京, 经历了好多, 见过了好多, 努力了好多. 最后获得的是薪水翻倍的增长, 以及对未来生活的信心和希望.

时间, 是我们每个人最宝贵的财富, 和出生和成长不同, 他不会因为这些因素而影响. 你的就是你的, 区别是你怎么去使用. 我觉得现在就好, 努力的赚钱, 然后去做想要做到的事情, 所谓的拼搏不就是这样吗? 所谓的人生也不过如此吧!

安全感会影响人生活的状态, 我现在也是这样, 有比较稳定的工作, 有比较稳定的还过得去的收入, 有比较稳定的个人时间以爱好.  同样的也会有缺点, 他会让你无法稳定的去做一件事, 会让你无法稳定的去使用自己的时间, 因为, 这种稳定性只是相对的: 没有稳定的房子, 没有稳定的家庭, 没有稳定的能够无惧的用来赚钱的能力, 甚至连稍微稳定的家族和女朋友都没有, 相对的世界与正常的世界, 同样都是自己的世界. 而你自己需要在两个世界的夹缝中为两个世界而努力, 一个是自己看到的幸福的世界, 另一个是自己看到的不幸福的世界.

世界的恶意是存在的, 而且很大部分世界的恶意, 其实是别人对你的恶意. 当你选择帮助别人的时候,  当你不选择帮助别人的时候, 只要你与人打交道, 这种环境都会靠近你.

美好的生活是快乐的, 同时也是痛苦的. 因为你不知道它什么时候会离你而去. 因为不曾拥有过, 数据不足, 而无法做出比较准确的判断. 恐惧判断, 是每个人都有的, 只是每个人的看法不同, 而且对出错之后的处理能力不同, 所以, 每个人决定的轻重也是不同的. 而我喜欢判断, 喜欢分析, 同样的我也恐惧失败.

从以前的无所谓, 到对世界感兴趣, 对人类感兴趣, 这种体验, 我也说不出来是什么! 所以我最近经常上知乎, twitter, G+, v2ex 我希望能够找到, 我到底喜欢什么样的人? 到底该向什么样的人们学习, 努力成为什么样的人?

北京

刚到北京的时候, 对这儿期望很大的, 但是当我了解之后, 然后再结合人来想的话: 或许每个地方, 其实都差不多, 都有自己独特的魅力所在.

北京有CBD, 高楼大厦, 也有乡间小路, 地摊, 垃圾. 世界是相同的, 只是人们选择在哪儿生存而已. 因为人, 所以城.

北京也有很多很赞的地方, 当然, 基本上是与人相关的. 我去过香山, 索道很赞, 去过故宫, 感受到了时代, 去过水立方, 感受到了城里人的生活. 都很不错, 这是在老家的小城市里所体验不到的. 大城市的味道.

同样的, 只有在大城市的能玩的游戏Ingress, 我真是非常喜欢. 我因为它去过颐和园, 去过清华北大, 和那边的博士/学生, 一起吃饭, 感受他们的生活, 以及他们的努力和能力, 认识很多工作, 结婚之后仍然在玩Ingress的朋友. 为了玩游戏, 翻墙. 为了玩游戏, 坐飞机去曾经没去过的地方, 参加战争. 为了玩游戏, 出国参加战争. Google在游戏方面, 基于lbs的游戏, 走在了世界前面, 我很期待, 未来的vr和lbs的混合, 真正的游戏人生.

同样的, 在北京, 我感受到了什么叫差距. 在我们那 500 可以租一套农村的房子. 在西安, 可以租一间卧室带独立卫生间和厨房, 在北京700元,只能住地下室. 而我现在就在地下室住, 气味有点土味, 偶尔有蟑螂出来散步, 卫生间20多人用一个, 洗澡的也一样, 而且都要交钱.地铁坐一次就能在家乡吃一碗饭, 每天做地铁都够午饭钱了. 而且, 同样的牛肉面, 在北京都是翻了三倍.

最后, 美好的生活仍然在前方, 你需要更加的努力前行.

 

时间好快, 转眼间已经学安卓半个月了

已经半个月过去了, 不知道我学的怎么样, 反正我自己感觉差的太远了. (QAQ)

不过, 最近过的很充实, 虽然比较累, 但是感觉每一天都很努力. 如果我能够经常保持这样的状态, 或许在未来的某一天, 我真的会喜欢上自己也说不一定.

不过也渐渐的了解到了安卓, 了解到了Google在安卓的努力, Material Design 也非常赞, 很喜欢那种给人一种很清楚生动的设计.

不过可悲的是, 安卓比web前端更加的碎片化, 各种屏幕适配. Web虽然浏览器不一, 但是已经有了各种优秀的库, 用来轻松解决浏览器兼容的问题, 虽然我现在还没有碰到大的兼容问题(其实是因为, 我只用过虚拟机和自己的手机), 没有碰到平板什么的. 估计之后会适配起来比较麻烦, 至少我在手机上看到的和虚拟机上看到的差距比较大. 只能祈祷了…

前两天休假, 就花了半天的时间看视频, 学习如果做小项目, 结果都太难了, 我只能挑一个简单的做了. 然后就做了一个单页面的2048小游戏, 有空玩玩也不错, 不过UI我也是没法看的下去.

2048 这就是那个游戏了, 有兴趣的可以玩玩, 顺便给点评价, 我想要知道自己还有什么不足的地方.

最后, 明天的世界, 我会正面上自己…

稍微折腾下博客

主要做的事情就是把主题换了一个颜色鲜艳点的,然后就是因为多说的头像点击起来无法跳转,而且很多博友都已经使用Disqus,所以我就也来试试这个,顺便把多说暂停使用了。

最近也过得比较充实,每天都有新的东西需要学习,有接触到了很多新的名词。比如:

  • Material Design
  • Android Studio
  • ADT
  • SDK
  • NDK

以上这些,都去稍微的了解了一下…… 发现自己要走的路还很远啊,一个小小的APP目前都很难写出来。

这个新主题我还是很喜欢的,因为使用了 Google Material Design 设计规范,有一种很特殊的时尚感以及年轻感(或许会有自豪感?)。Google 在世界上还是比较良心的公司,当然弱小的公司是打不过流氓的,所以只能妥协了。

最近感觉自己好像对于一些Android上的小东西能够参与开发了,但是不知道做个什么,估计比较大的项目还是有点困难的,哪位朋友有不错的开源项目需要帮手可是试试找我,虽然我不一定能够帮上什么忙,但是我会经历努力不添乱的(来个Master带我飞);

明天就是端午节了,最近越来越发现,真正和家人在一起的日子估计会变得越来越少。我要更加努力,争取能够自由的工作和生活,而且要能够经常陪家人,当然也包括未来选择和我一起在这有趣的人生之路上前行的另一半。

还有就是,不知道是不是越来越热了,不出去的话就会穿的越来越少,甚至有时候是拖鞋内裤。难道这是我向猿类进化的信号吗?会不会以后直接在家里裸体,然后我就走上了暴露狂的不归路了!(/▽\=)

渐渐的越来越了解自己,渐渐的越来越接近自己…… Are you ready ? Become the Programmer.

JavaWeb 学完了,稍微休息下吧

JavaWeb在传智急先锋的老师辛勤的工作下,以及顺利学完了。虽然,只学到jsp,框架什么的都没学。不过,对简单的项目,应该已经没问题了。

虽然,说好的要休息一天的,结果怎么样也呆不住,亚历山大啊!所以就准备写一篇博客安慰一下自己了~

这篇文章我也不知道改写什么,想到什么写什么吧。

空间、朋友圈、只要有人的地方,都有现充在晒女友。这让我一个又宅又变态的半吊子程序员,该用什么表情、用什么心情,去观看、回复呢!!!

说真的,喜欢人类的Timing对我来说很简单,几乎每一个在我身边的、我能够接触到的,我都能够喜欢上。甚至对我有帮助的,从未谋面的,我也非常喜欢。

但真正让我去和一个人相处、交谈、消费时间,而且是建立在友人以上的状态,对我来说非常难。或者说,我并不会去主动去建立这样一种关系。这对我非常不利,在这个越来越需要交流的社会。所以说,我现在女性挚友一个没有,男性挚友不到一只手。虽然同学很多,但却不会主动去联系,如果能够见面,倒是感觉不错。我努力的改变自己的心境,结果导致的是单方面的,我只能去聆听,如果让我去主动的话。我会感觉到,好像没有什么是非常必要的需要沟通的东西,我并没有什么必须要说给其他人听的东西。就算说了一些我的情况,反而那些变态的言论会导致我的处境更加的不好。

所以说,心境的提升也是有副作用的。而这个副作用,会因为你自身的环境以及性格进行放大。这会导致你,变得非常怪异。所以,看到这段话的朋友,希望能够静下心来想一想。自己目前的心理状态是否正常,是否在平稳的发展,别基于求成,而导致自己与身边的环境产生巨大的沟壑。

当然,这也不是绝对的不行。当你觉得自己和周围的环境格格不入的时候,或许你该换个环境了。我现在是这么想的——培训完之后找机会去大城市,再去感受一下曾经年轻的时候没有完全感受到的大都市的意志,借助这个提升,让自己跳过目前的薄弱阶段,然后去重新开始。重新开始对世界这个美妙的东西的探究。

稍微总结一下变态的方面吧,希望有热心的朋友能够给我一点提示:

  1. 懒,懒到如果不是非常必要的话,是不会和别人说什么的。就算是最好的朋友、或者家人,我都是按照正常的交流方式,去和他们交流一些必要的语言。这也不是说我在网络上善于交流,我现在网络上也只是获取信息和学习了,对于他们的感谢之心,我只会默默的记下而已。
  2. 同样还是与人交流的问题。我会在和别人谈话到没话题的时候,心里是不会有去找点什么话题的想法的。
  3. 拒绝正常的娱乐方式:
    1. 电视剧,几乎不看,而且现在一般情况下是没有电视的,有电脑也不会主动去找什么电视剧来看。
    2. 电影,很少看,最近看的就是《星际穿越》,好像已经过了好长时间了,而且还是盗版了,没去电影院
    3. 游戏,几乎没玩,过年只配朋友玩过《lol》,然后很少玩游戏了
    4. 小说: 很少看,最近一年之内,只看了一本科幻的作品,会追着作者看,不过有时候几天都想不起来,然后想起来就看完
    5. 运动:几乎不运动,除了去上课的时候走路。因为上课时间紧张,加上除了自行车也没什么喜欢的运动了。
  4. 与二次元的联系也越来越少:以前会追B站几乎所有的新番,还有看不到的也追。最近越来越少了,而且以前准备捡起来的没看的也不想去。渐渐的,好像只有几部需要每周看的了,虽然每到该追番的时候还是很激动。但是,感觉适合我的动漫越来越少了,最近的动画也越来越固定了,越来越没有意思,没有创造。我最初喜欢动漫,就是因为它的天马行空的想象力,无所拘束的剧情,以及敢于针对不正确的问题的探索。但是,越来越丧失了。当我将自身的境界提升之后,我感觉自己对动漫的爱在这次过程中丧失了一些。或许是转移到了对于人类的Timing的喜欢上。这是对于自己的爱的误解吗?我不太清楚,我也不想去知道,我只是觉得,目前这样就好。
  5. 黄色、低俗,虽然对我来说不算什么。但是,和其他人聊天的时候,总喜欢使用一些网络词汇或者出名的梗,但是当其他人不知道的时候,我就悲剧了。我从来没有想传教或者拉人去网络,去推荐贴吧什么的。所以,当他们问我的时候,我只能说自己是个变态了。其实真的挺变态的:本子、图片、AV等等,我有时候会去看看。不过,我好像已经20+了,算是成年人了吧!我觉得体验一下这种感觉也好,单身的感觉,会让你更珍惜将要陪你一起走上死亡之路的最近的伙伴。同样,这个道理其实可以扩展到家人、朋友等等。你需要学习的不只是体位,而是判断会产生的问题以及解决方法,以及如何和自己的身体相处。
  6. 由于最近突然对人类的Timing有兴趣了。所以相对的,对男人和女人都有兴趣了。当然,有与我是男人,所以好多信息可以通过自身来得到。但是,对于女性的一些信息,我却无从得知。而目前,我对直接和女性谈话还是不知道方法,如果只问感兴趣的问题的话,会对别人不太好,我需要同等的交换信息。所以,现在走在路上,对遇到的每一个女性人类生物,我都会仔细的观察一下,分析她们目前的状态。至于为什么这样做,我觉得,女性其实渐渐的开始觉醒了。我以后也是需要和她们进行沟通的,男人和男人是比较简单的就可以沟通,但是对于跨越了半个种族的生物来说,应该是稍微困难一点的。所以我需要了解她们。(我是不是有隐藏的傲娇属性?)其实我心里对于女汉纸的评价是很高的,当然这是说那些喜欢努力,想要超越男人,想要获得不一样的东西的妹子们。妹妹和萝莉之下,就是可爱的女汉纸们了!
  7. 我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!我是变态!

最后,再说一次:我是变态。 不过希望,看到这篇文章的朋友们不要进行恶意的传播。变态(gentleman),只需要被变态(hentai)认可就足够了!

静下心来之后,往往会胡思乱想。然而,在这胡思乱想之后,却又对人生进行忏悔。为了美好的每一天,我需要变得更加的变态。或许,只有这样,我才能够拯救身边的人,顺便改变所在的一方世界。

Thank Reading! by Etby.

学习日志 – 来到传智博客已经一个月了

目前的时间是2015年5月22日22:53:35,距离开课的时间是-22天,转眼间-我已经在西安传智播客呆了32天了。

对传智播客的感觉

第一,就是感觉他们很真诚。因为,他们目前讲的东西和他们放出来的视频没有多少区别?

我并没有想黑什么的,至于看到这篇文章的人怎么想,我却是不准备去深究的,我只是想把我的看法以及想法记录下来而已

第二,有一半应该是想我这样的工作了一段时间之后想踏入IT行业的求学者。

所以,在这里氛围还是不错的,虽然他们都有放松自己的方式,但是绝对是没有不学习的人。这和普通的学校是非常不同的。或许,会有拼命去学习的强者?

第三,有一半是正在、或者刚刚毕业的大学生,他们感觉自己目前出去还有点无法胜任IT从业者的工作,所以在实习与培训之间选择了后者,为了在结束之后能够有一份非常不错的工作。

虽然我认为,如果在学校正常学习的同学的话,是不会没有自信找不到工作的,他们的能力绝对能够胜任任何一个公司的基本需求。

当然,这些同学都是有所发觉的,他们渐渐的褪去了大学时游戏人生的心态,来开始认真看待自己的生活,并为之付出努力。

第四,传智博客的老师,虽然目前我只正式的接受了一位老师的教导。但是,对于其他老师我也有接触。

他们,心中也怀有为人师表的感情,而且作为培训机构的讲师,从早上9:00——晚上7:00,不停的讲课,虽然会有10分钟/小时的休息时间。但是,我觉得这样比他们去做正常的开发工作累多了。当然,他们所获得的收入比一般公司的开发者的确是高一点。

第五,对于西安校区。由于是刚刚开始,我们属于第一批的学生,而且校长很年轻,老师们也都很年轻。

我们之间的交流也可以说障碍并不大,我觉得唯一的不足就是他们需要照顾大多数人,但是对于走的比较快的学生却没有一个正确的道路去引导。对于走的慢的同学,也没法去专注的帮他。当然,师傅领进门,修行在个人。我们付出了学费,只是得到了资源而已,真正自己学的怎么样,还是很靠自己的。

我的学习状况

第一阶段的java基础课,我是没有参加的。因为之前学过云课堂的C语言,而且在曾经报名黑马的时候,很努力的学过一段时间java基础了。

从4月20号开始的课程,我进入了这个班级学习。

JavaWeb的课程,前面是Html, Css, JavaScript的简单介绍,由于之前玩过博客,虽然玩的不太好,但是只是入门的话对我倒是没有太大压力。

后面,就是关于Http协议的部分,这个老师也把关键的请求字段讲了给我们。我之前看过的云课堂的计算机网络课程,对我帮助还可以(只是因为学的不够好,不然帮助更大)。

Jsp, Servlet 作为JavaWeb的核心,我也不知道老师讲的好不好,但是我觉得我自己学的还不错,至少,如果给出一个简单的需求,我还是可以做出程序的。不过,我目前的前端水平真的是太渣,所以我报了网易前端的课程,准备补一下。

数据库, 这是个大家伙。

从前,接触过的只有为mysql建个库,然后自动安装就好。所以这方面我还是很菜的,所以我对这方面比较认真,然后就是通过云课堂的数据库原理和老师讲的一些东西,重要可以把增删改查的需求掌握了。

对于其他的数据库设计,权限管理什么的,我准备有机会了再补一下。毕竟,如果连这个也不会的话,怎么好意思称自己为程序员?

未来的学习计划

网易前端微专业

因为经常关注云课堂,所以这个微专业在一出来的时候我就知道了。

然后,我就开始纠结,到底要不要花上千元去学。如果没有经历过培训的话,我对一个互联网的课程,是不可能付出上千元去学的,或许几百元我都无法接受。

因为,如果是互联网上的东西,是不可能有绝对的收费的,更何况是网易这样大范围的宣传之后的东西。这怎么可能没有人下载,流出呢?

但是后面我又仔细的想了想,难道我要一辈子被这种思维所禁锢?这种小人物的心态,如果我接受了,默许了,我一定会丧失一些东西的。以前,是因为比较小,没有能力。那么,现在呢?我从云课堂到TED,不断的寻找思想,不断的学习。我发现,无私传播知识的人,都是非常可爱的!我难道,要和其他人一样的不尊重他们吗?

后面,有了云课堂的公开课。虽然是宣传,里面有很多东西没讲。但是,光是两列布局的实现方式那段讲课,以及征服了我。因为,一般情况下,前端的视频都是给你讲,一张图片,如何实现效果。但是,从来不讲,该如何轻松的实现。这或许就是差距,美工与前端工程师的差距。如果让你选择一个老师,你会选择美工还是前端工程师?

我会毫不犹豫的选择前端工程师,因为我崇拜强者,喜欢强者,喜欢更加变态的人类。而且,如果以实际出发,我是一个后端工程师,而未来会成为Full Stack Enginner, 那么在实现需求的时候,css样式、js函数与特效都可以查手册。但是,想这种布局方面的东西,是无法快速的查到的。因为实现方式很多,所以每个人都有每个人的实现,而一般情况下只需要一种实现,如何用比较好的实现,则就是经验的积累与知识的积累了。但是,如果你没有办法接触的话,是谈不上积累的。

至于,结业之后的比赛和网易的实习职位,我感觉我是没机会了。不过,如果有机会的话,我会去杭州参加比赛,看看真正的前端工程师的世界。

安卓开发

JavaWeb已经结束了,剩下就是一个几天的小项目,根据和老师的了解,也不会有多重要。因为我们一般是针对安卓的,不过我感觉,就算是安卓,也没有多难。更多的应该是数据的积累,以及实现的熟悉,能够更加快速的实现需求吧。真正接触底层,或者更高层次的编程,需要我们自己去努力了,不过我现在还是不会去想的,至少先把基础掌握扎实吧!

虽然Android开发的老师没见过,但据说是好几个老师,每个老师负责一个阶段或者项目,我觉得这还是比较负责的。让对某一方面掌握的比较深的老师,专门来教那一个方面。因为,一般来说是没必要换老师的吧,这个成本也是比较大的。

小机器人,我来了!! 有些时候,机器人还是挺萌的,只是不知道它是男是女,不过男女应该对我没什么区别!不是人的东西,一般来说我都比较喜欢,当然这是建立在它与我的交流之上的。能干的**,我是很喜欢的。

Java20岁了

5月23日,java语言诞生20周年。

好吧,这家伙居然比我还小。我还以为,她是大姐姐一般的朋友呢!真是让我伤心,早知道就去拍黄片了,即简单,又来钱快。

=-=,好吧,上面那句话是我胡说。Java作为经常排名前3的语言,许多大型项目的最佳选择,对人类思维的友好,导致了她就算未成年,以及绽放出了巨大的光芒。不过,如果年龄更小一点就好了,不过我也不只喜欢她一个,其他的语言迟早会去探索的。每种编程语言的隐秘,有种奇妙的吸引力。

不过,虽然学过了基础,但是,我对她仍然一无所知。难道终究会分道扬镳吗?不过她女儿或者儿子倒是非常吸引人,而且还不到10岁,真是美妙无比。

或许未来,会母子一起上,不过目前还是专注android吧!毕竟,跟着自己的欲望走,才是最适合自己的道路。