目前,美加主要分为两大类公司,一类公司以美国的google/apple/facebook/linkedin/paypal/square/saleforce等大型科技公司为代表。这些公司招聘时注重面试者计算机基础概念知识的掌握,包括数据结构,算法和优化知识等。面试的问题也是与这些主题相关:我摘抄几个别人的面经:
1:Given a binary search tree (BST), find the lowest common ancestor of two given nodes in the BST.
2:You have to paint N boards of length {A0, A1, A2 … AN-1}. There are K painters available and you are also given how much time a painter takes to paint 1 unit of board. You have to get this job done as soon as possible under the constraints that any painter will only paint continuous sections of board, say board {2, 3, 4} or only board {1} or nothing but not board {2, 4, 5}.
对于转行或者初级程序员来说,不是短期速成就能够具备解答这些问题的能力的。需要上一些专门的计算机课程,如数据结构和算法,了解一些基础知识后再进行专门的题型训练才可以。即使对于很多5~10年以上的程序员很多知识平常工作也用不上,解这些题也很费劲。
如果进行专题训练,网上有很多面经可以参考,拿来练手也不错。例如leetcode.这原本是印度人的网站,现在成为全世界梦想进入那些大公司的窍门砖。
程序员需要的技能就是要精于算法和数据结构,当然如果能进这种公司,待遇那是相当了得,嘻嘻。
第二种就是web developer,提供90%以上的工作机会,目前分为两大阵营语言和工具,微软.net.和sun(oracle) java. 微软由于提供完整的解决方案,完美的系统整合兼容性广泛适用于各类小中型公司。大型公司微软.net使用的比较少。大型公司指的是大型金融企业,电信公司,航空公司等。因为他们大多使用ibm的服务器,unix和数据库产品。而微软的产品主要面向pc和pc服务器windows居多。这些公司更多注重开发者的实际项目经验和开发经验。就是要求开发者的知识要广。不管什么工具框架都涉猎过。面试的时候,对任何主流技术都能略知一二。对于新移民,转行的人来说通过短期训练积累经验是可以快速粗略通晓这些技术的。比如对于Java来说:网上有非常多免费资源:
1:可以下载一些教程
2:在自己的机器上安装并模仿实现教程项目
3:如果有人能够指导一下就更好了。
我认为如果对于当程序员有足够的雄心很多人可以在3~4个月的时间内从一个对计算机一知半解的人变成一个初中级水平的程序员的。
希望能给那些还在迷茫的人一些鼓励。
1:Given a binary search tree (BST), find the lowest common ancestor of two given nodes in the BST.
2:You have to paint N boards of length {A0, A1, A2 … AN-1}. There are K painters available and you are also given how much time a painter takes to paint 1 unit of board. You have to get this job done as soon as possible under the constraints that any painter will only paint continuous sections of board, say board {2, 3, 4} or only board {1} or nothing but not board {2, 4, 5}.
对于转行或者初级程序员来说,不是短期速成就能够具备解答这些问题的能力的。需要上一些专门的计算机课程,如数据结构和算法,了解一些基础知识后再进行专门的题型训练才可以。即使对于很多5~10年以上的程序员很多知识平常工作也用不上,解这些题也很费劲。
如果进行专题训练,网上有很多面经可以参考,拿来练手也不错。例如leetcode.这原本是印度人的网站,现在成为全世界梦想进入那些大公司的窍门砖。
程序员需要的技能就是要精于算法和数据结构,当然如果能进这种公司,待遇那是相当了得,嘻嘻。
第二种就是web developer,提供90%以上的工作机会,目前分为两大阵营语言和工具,微软.net.和sun(oracle) java. 微软由于提供完整的解决方案,完美的系统整合兼容性广泛适用于各类小中型公司。大型公司微软.net使用的比较少。大型公司指的是大型金融企业,电信公司,航空公司等。因为他们大多使用ibm的服务器,unix和数据库产品。而微软的产品主要面向pc和pc服务器windows居多。这些公司更多注重开发者的实际项目经验和开发经验。就是要求开发者的知识要广。不管什么工具框架都涉猎过。面试的时候,对任何主流技术都能略知一二。对于新移民,转行的人来说通过短期训练积累经验是可以快速粗略通晓这些技术的。比如对于Java来说:网上有非常多免费资源:
1:可以下载一些教程
2:在自己的机器上安装并模仿实现教程项目
3:如果有人能够指导一下就更好了。
我认为如果对于当程序员有足够的雄心很多人可以在3~4个月的时间内从一个对计算机一知半解的人变成一个初中级水平的程序员的。
希望能给那些还在迷茫的人一些鼓励。