Recently I have an interview with a company which require to finished a code
test on hackerrank. Basically all the problems are related to algorithms.
I just realized that I have forget to solve basic programming problems
but spent too much time focus on tools like emacs, and all kinds of tools
and language frameworks/libraries and all kinds of programming languages.
I guess it’s not good for some programmer career to put focus on these things other
than a single programming language fundamentals and algorithms and data structures and
etc. The former eats up your time and sometimes burn you out. No time to
learn all the things you think you need to learn to stay ahead of the curve.
I just checked I have 6884 unread items in my Pocket account and a lot of downloaded pdf
documents. Never read them. I have been always want to setup a personal blog. Never finished
it.
I do checkout David GTD methodology. Never successfully implemented in my workflow.
How do you guys manage your career as a software developer or developer? What’s your
daily activities?
I read people travels a lot as a freelancer. Do you? What’s like to live like that?
If you do do competitive programming? How can it helps? And please share some of your
experience?
2 个赞
算法是内功,工具、框架是利刃。
利刃让我们工作完成的效率更高,至于如何更好处理工作遇到的问题则需要内功。
至于考核手段为什么用算法:算法考的逻辑思维能力更令人信服,这更能代表能否有能力解决实际问题。如果只是考普通的框架、工具的怎么用,难免会陷入「背一背就会」的问题。
实际工作中的经历也很容易说明为什么内功更重要:例如新工作让你学习一门语言,或许看了两天书第三天你就能上手工作了;如果让你优化公司某推荐系统算法(这是随便打个比喻),你还真不能短时间搞定。
我的想法很简单,总之让自己先分清楚什么是「内功」,什么是「利刃」,提高自己的核心竞争力。
PS: 我看到楼主之前回帖都是用的中文,所以这里我懒省事,就用中文回答了:)
哈哈,,不要慌,,刷leetcode就好了。。还有cracking the coding interview… 如果想要平时多了解一些零散的问题的话可以看geeksforgeeks。。
熟练掌握你现在研究的工具肯定没有坏处的,,我记得我某次去一个会议的时候,,旁边坐着一个亚裔女教授,,端着一个十八寸的alienware在腿上,,emacs分了很多屏幕。。很生猛的。。
freelancing得看接到的活儿怎么样了。。量力而行,只要保持每天有那么几个小时是满负荷运行就好。就我来说吧,,我现在业余接的活儿都是一些小型的project,所以一般我就直接拿自己写过的东西套上去了。但是每周会用一点时间看自己没看过的,
长远来说干敲代码确实会很boring,我认识很多代码功底比较不错的后来转quant,也有一些跟别人创业或者自己单干的,也有专门free lancing一边到处旅游的。然而我只是想说不用太担心理论和实践没有办法平衡这件事情。。
最后的一个建议是,,你可以算一下自己花多久可以掌握一个工具,,多久可以弄明白一个新的领域,,这个比较有意思,,而且对于自己能发挥到最好的程度有个大体估算。。
刷leetcode就好了。。还有cracking the coding interview
刚看了Amazon Software engineer interview 都有提到唉。我的问题是现在很难有状态去读一本书。一般都是才去看的遇到问题去。
你定期去leetcode 么
长远来说干敲代码确实会很boring
现在时不时觉得有点没意思。写代码。Mind Games。
你可以算一下自己花多久可以掌握一个工具,,多久可以弄明白一个新的领域
我在Emacs这边大概有两三年吧。不记得。开始的时候都是网上的言论。Vim Emacs 什么什么的。比JavaScript稍微好点, 但是还是动不动就冒出来个Text Editor。
现在好点了。用Emacs 偶尔用evil。看了视频才意识到 Vim keybinds 之于 text 有点像 sql 之于数据库中的数据一样。
“Tools are just tools, use what makes sense.” 你说的很有道理,掌握一个工具够了。现在不是很深入。
Thank you
现在直接用 Spacemacs 不更快捷吗? 读一遍 FAQ 和文档,然后把快捷键依次熟悉一遍。就可以顺畅的工作啦。
我之前Emacs 也是花了些时间捣鼓。自从用了 Spacemacs,学 Emacs 的效率也提高了很多。
I think this post is interesting here, worth reading it:
https://medium.freecodecamp.com/finding-time-to-become-a-better-developer-eebc154881b2#.n432v5ptn
The key points in this article are:
You don’t need to learn every new thing in order to stay relevant.
Focus your learning on three areas, in the following order of priority:
- Fundamentals : algorithms, operating systems, database theories, 3D graphics theories
- The latest version/feature of the stack(s) you use the most
- In-demand tech that is backed by market leaders
Writing good code takes less time than writing bad code, BUT it doesn’t feel that way.
- Use test-driven development.
- Use an iterative design approach.
- Do code review and do code refactoring regularly (added by myself)
Working 24/7 does NOT make you a hero. Managing expectations does.
This seems good for people at work
Not all time spent “improving” code has the same ROI.
Scheduled down time makes you more productive.
See Hick Rickey’s Hammock Driven Development Hammock Driven Development - Rich Hickey - YouTube
3 个赞
Thanks man.
I actually come across the article “Finding Time to Become a Better Developer” from the HackerNews website. Haven’t really read and put it into practice.
However Hammock Driven Development is kind of new thing to me. I’ll check it out.
Thanks for the heads-up and sharing.
Well actually pure coder is not a good idea for career development. I mean if you are not very addicted to the idea of making an impact with great projects.
But here is my suggestion of practicing to get to a higher ground in computer science world:
-
Read source code, read a lot, try to change some of them.
-
Play around with intel SSE4. Try writting assembly code for loop tiling. The process of optimizing loops is a great start to be more familiar with the architecture of CPU and compilers.
-
Try some super optimizers with racket under unix systems. Try both LLVM coding or assembly.
-
If you are interested in graphic card programming you can try to code one or two shaders and different materials rendering with some sample projects on github.(cs565, for example)
-
Linux Kernel. Which is very cool stuff and necessary to understand if you wanna go deeper.
-
Machine learning. which is always gonna be useful.
Well the thing is that industry world doesn’t really treasure computer programmer as it seems to be. I hope you can find interest in those things. If you manage to spend 1 or 2 months and finish 1~4, you are a pretty smart programmer. Well if you can master 5th one then please think of some ideas on your own.
It’s not gonna be very hard but it’s gonna take a lot of time.
Maybe becoming a quant might as well be very interesting to you for the further step career goal.
1 个赞
Awesome summary. I’ll try to practice as you mentioned.
这个帖子的讨论还不错然而在一个大家母语都是中文的论坛用英文发帖真的不是pure zhuangbility?(如果op是ABC那当我没说)
不太确定你为什么会有这样的想法。语言只是交流的一个工具。非常抱歉让你感到不舒服。我是在请教问题,寻求指引。非常感谢有很多人回应。不太确定[quote=“JJPandari, post:14, topic:701”]
zhuangbility
[/quote]
是不是装逼的意思? 是的话,我想你想太多了。
你的建议是挺好的
以后发帖的话,我会尽量用英文。
谢谢
个人认为在技术社区用英文是没有什么问题的,即使 po 主是中国人。当然如果有交流不畅也大可指出。
最近刚换的一家公司 技术和老板都是英语的。这边口语太差, 写出来的时候有时也有问题。如果有不通畅的, 非常感谢能出来。
我是觉得都是自己人,用中文大家看着都舒服,练英文去reddit/quora/stackoverflow就好了。不过再仔细想想从这个帖看来大家用英文都聊得很开心,我多此一举了,你们开心就好。。
都是有道理的。国外的那些社区有一点不好:他们都是外国人。内心还是希望有说中文的当是同时英语很好的。这样如果英语不流畅就直接切到中文。了解彼此的意思,然后再切到英文。确实看很多英文文档, 但大部份都是停留在脑袋的,自己的理解。
非常感谢你们的回复。我觉得我要关掉这个Thread了。不确定discourse有没有这个功能。
之前陈斌的podcast提到有人会不适应英文。 没在意。没想到真遇到:joy:
@xcodebuild 我看你在管理员的列表里面。你能帮忙关掉这个主题或者别的什么。
Thanks.