这个题目好像有点宽泛。再具体点,在技术上说。
如果接触一门新的计算机语言,看完一本介绍性的书、照着书上写过一点小代码之后,做点什么可以比较有效地提升这个新点开的技能点呢?可能有人会说再做点小project,但这时候问题就来了,所谓的小project具体是什么,好像不那么容易想到明确的点来动手,然后这个新点开的技能点因为没有持续的练习然后就停留在入门级,然后就等同荒废了......(别告诉我只有我一个人这么没有creativity,只有我一个人这么lazy)
这个问题受刺激于我刚刚fail了一家公司的笔试(要求在8小时内做一个小app)。fail了之后,反思发现自己虽然接触Android开发从时间上来说算有将近3年,可是能力上来说还跟2年前差不多地原地踏步踏(是的,我是正找工作的学生党),我所认为的原因是:看书是不够的。要实实在在地做些东西,而且是要有变化、覆盖到不同方面的东西(我虽然也开发过两个小东东,但是现在回想起来其二者重叠度很大...)。
当然,这个问题放在已经参加工作的你身上而言,这种职业技能的提升很多时候是自然而然地伴随着工作内容变化(深度or广度)的需要而不断提升的。但你也总该会对自己工作内容以外的某个技术点感兴趣的吧?
实在没有,那么就再扯远一点,放在职业之外的兴趣爱好。大家都是怎么充实自己的?喜欢摄影?对文学感冒?又或者我都想不到有意思的点,乐闻其详。(是的,我是那种不找点学习的乐子给自己就不舒服的自虐者)
好了,我的问题完了~
最近我的学习效率挺高的,感觉成长了不少。写出来大家分享一下。
1,将自己学的东西应用到工作上来,学数据库的话,把公司的数据库备份策略有效优化了。
2,学shell编程的话,把自己很多手工的事情自动化了,并且主动帮别人去实现自动化。
3,学python,公司用python比较少,但是也有看到一些python的脚本来监控系统性能的,有时间的话就自己看那些python脚本。
4,和公司各方面的牛人保持好的关系,多和牛人交流。很幸运的是来毕业来到公司后,各方面的牛人都
很好,基本上不懂的问他 都会耐心的解答。
5,最后私下里得多用功,多写总结,每天回到家我会把今天的交流和收获记录下来,重新梳理。这是我刚刚建立起来的
习惯感觉受益良多。很多自以为知道的问题其实都是在总结的时候就会发现还是一知半解。
提高自己最重要的事情就是遵循自己内心的选择, 你到底喜欢什么, 而不是招聘的公司要什么.
强迫自己学自己不喜欢的东西永远不会是个好路.
我能像看武侠小说那样兴趣盎然地读各种技术书......
你学安卓开发是因为你喜欢吗?
我是摸着石头过河那种人。很少说整个技术的详细教学过一遍,而是在实际工作中遇到什么问题就搜索该方面的解决方案。时间长了,自然而然的在脑里建立起一个知识模型。
我刚入行的时候很着迷技术的自我提升。但做久了以后就不是这么认为了。这并不是因为觉得自己在技术上走不下去,也不是就完全不在技术上下功夫。而是觉得,技术于软件开发真有这么重要么?我不得不说,于我,对技术的追求多少有点想证明自己聪明。做技术的人多少都有点这种毛病。但事实上,在开发中有很多非技术的东西也相当重要,我在今年才突然发觉到。。。
LZ的问题其实未必在技术上,而是在问题的理解上。我当初也是如此,在学校学了那么多电脑知识,学习也不差。但直到我正式工作之前我都不是太搞得清,开发到底是怎么回事。这可能是因为我缺乏一个问题,一个有待你来解决的问题。但在我进入公司的头几天,项目一摆到桌面上,我马上了解这到底是怎么回事。而且动用所有可以动用的资源来攻克项目的问题。
但到我离开公司,我想要不我也来做个iOS的小应用玩玩?谁知道好久都憋不出个app。突然间发现自己搞了两年开发,其实像自慰一样,事实上每多想客户到底是怎么感受的。然后才认真思考这些问题,尝试用用户的视角来看开发。
6楼 @bluedimple 我非常赞同你的说法。我的问题不在于技术怎么怎么样,而在于缺少一个具体地待解决的问题,在尝试解决这个问题的过程中熟练所学的技术,参加工作后,工作内容会提供这样一个大问题(并且伴随很多技术细节的小问题)。但是工作以外的话,怎么样为自己感兴趣的东西找到这么一个具体的问题,通过尝试解决问题提高自己???
8楼 @SoloHiC 不同的动机,就带来了不同的前进的方法. 如果你爱它,实际上你只要遵循自己的路就是好的了.
如果你觉得需要一个"方法" 来渐渐提升, 我想说的是, 时间在哪里,成就就会在哪里. 多花些时间, 你爱它又为它付出了时间,有什么理由你不进步不提升自己呢? 而因为你爱它,你为此付出时间并不痛苦,反而是带着乐趣.
如果你需要短期的"快速", 面试要求在8小时内做一个小app的公司,多半需要的是 "熟练工", 这种公司一般不是个可以托付的. 但是应该是非常切合你现在需要的, 所以, fail得挺可惜, 你这个阶段寻找下一个这类公司也许是好选择, 因为这种 "也许技术含量不高" ,但是 "快速" 的环境对缺乏工作经验的人短期内锻炼很大..干三五个月你会得到飞升. 然后跳槽吧. 这种公司会压着你快速把理论和现实切合.
十一年前我刚大学出来的第一份工作也是一个这种类型的公司,我只做了3个月. 我当时觉得我上班第一个星期学的东西比大学4年还多...公司有个好大喜功的同事,为了向新人炫耀他的厉害之处...把各种窍门绝招投机取巧的本事都秀了一遍.....然后那天我觉得这辈子学到最多东西就是那天了. 希望你也遇到这样的人....那些投机技巧并不值钱, 但是对于刚工作的人, 很有价值. 因为可以帮助你把学和用接起来.
IT产业的很多应用是功能驱动的,就是说给出要实现怎样的功能,然后针对功能进行开发。所以就有这么一类只关心功能实现的程序员。这也没什么不妥,只不过当中一部分的人很容易也就止步于功能的实现,而不往更深处探索,慢慢就成为技术提升的屏障。
这可能得看热情、兴趣和性格了。譬如在实现功能后,有没有重构代码的热情,让代码和实现变得更好。又譬如,在掌握api的功能和用法后,有没有兴趣思考和探索它的实现。再譬如,编程少不了调用方法,有没有思考过,为什么程序会突然间跳转到指定方法所映射的代码,执行完又回到调用的地方?CPU和内存中到底发生了什么?
在很多程序员的眼里这些就像魔法一样,你只要知道这么做会产生怎样的结果,并不必关心它是怎样做到的。这些问题的答案也确实不会为功能的实现带来确切的帮助,只不过我认为这种探究心会渗透到你的血液中,在开发过程中不知不觉的发挥某种效果。如果你缺乏一个自我修炼的课题这些都能成为你的题目。
但我最后必须说,我并不认为每个程序员都需要如此。大多数情况下,也只有以技术作为发展方向的程序员需要这样深度探究技术。因为程序员还有其他的发展方向是不需要那样深入的专研技术的。譬如,项目管理,产品设计。这些发展方向不比技术方向的程序员次要。很多时候他们其实才是关键。只不过,后者多数要依赖经验。对于刚入行的人来说,都是以技术作为一个开端,然后寻找适合自己的发展方向。
12楼 @bluedimple 嗯,一件事情方方面面其实都挺重要的,技术最后来说也只是其中的一个部分一个方面。看个人喜好和优势,各有侧重是应该的。
然后,发现现在我难的就是找不到一个准确的让自己做的课题。看来只能通过找个实习工作来给自己确定一个课题了~