Skip to main content

标  题: 转行CS,分享我独特的经历:回报社会,与君共勉

Make a Donation
FatWallet Coupons and Deals发信人: LiDan1276 (LiDan), 信区: JobHunting
标  题: 转行CS,分享我独特的经历:回报社会,与君共勉
发信站: BBS 未名空间站 (Sun Jun 26 18:18:16 2016, 美东)

找到工作已经2个多月,终于有时间坐下来,写写自己转行的经历。一路走来多不容易
,只有转行的人自己知道,当初就暗暗想,转成功了就一定要和大家分享自己的经历,
回馈给需要的人。

大概就如不幸的家庭各有各的不幸,转行的人也是各有各的原因。5年多工科PhD读下来
,我对自己的方向与整个行业已经没有多少兴趣,毕业后100份简历换来了1个面试,最
终让我对这个方向彻底失望。在开始找工作后的第5个月,决定转行CS。这里说几点关
于转行的体会:
1. 兴趣。因为CS就业好、待遇高,成为很多人转行的首选。从现实考虑,理所应当,
但就业好、待遇高不能是唯一的原因。要把一个行业作为自己的职  业来发展,最重要
的是自己的兴趣。转行过程困难重重,也唯有兴趣这个源动力能让人一直走下去。
2. 心态。转行的人大多在一个行业或专业有所积累,转行前我是我们领域的专家,可
转行后,我成了小兵,一切又要重头开始,这种心理上的落差需要很长一段时间才能适
应。
3. 准备。因为是转行,跟同龄人比自己已经失去很多时间。相信很多转行的人都会内
心焦躁、急于求成,恨不得一分钟掰成两分钟过。但是,在关键问题上,一定要慢,放
慢脚步、做足调研和准备,这样的关键问题包括要不要转行,转去哪一个行业,具体做
行业里的哪个方向,如何转去这个方向并找到工作。

如何选择
对于我个人,当初这些问题具体是computer science, data science, mechanical 
engineering,转哪个?在问过我的同学朋友们,了解过就业情况、转行难度、工作内
容,结合我的个人兴趣,最终定了CS。但CS也分很多方向,最终有些机缘巧合地选择了
web development。

“暴力转行”
我知道的人大多是自己刷题、做project,然后投简历、找工作。如果以前的经历和CS
有一定的相关性,那这种方式绝对是有效的方式。但我的PhD工作,除了用matlab, 
fortran编编程,基本和CS就没关系,所以我自觉这种转行方式对于我就是暴力转行(
至于暴力转行是否可行,我的样本太小,无法判断,并且我最终并没有采用这种方式)
。但刚开始我还是这样做的,并且刷题刷地不亦乐乎。但没多久,一个人长期的孤单击
败了天性爱热闹的我。我开始寻找属于我的组织。最终,我把目光放在了湾区的
bootcamp上(楼主人在湾区)。

湾区的bootcamp大多是web development的培训,也有少数是data science的。web 
development主要有教Ruby on Rails(ROR)和JavaScript(JS)的。没了解前不知道
,一查才发现,湾区的bootcamp办得是如火如荼,数量众多,价格差异大,质量也参差
不齐。鉴于JS的蒸蒸日上之势,选了一家教JS的reputation最好的bootcamp。这里提一
句,好的bootcamp价格真不低,我上的这个,3个月$17,000,但舍不得孩子套不着狼,
该花时就要花。后来的经历也证明了当初的选择是正确的。

自学
在上bootcamp前,我有四个月的自学时间,核心知识及其顺序包括:
  一门语言
  Java:我开始学的Java,具体上的Udacity的Introduction to Java。虽然,最后做
的是JavaScript ,但是个人感觉Java 语法相对严谨,对于初学者比较合适。

  算法与数据结构
  Coursera上的Algorithm Part I and II by Princeton U https://www.coursera.
org/course/algs4partI
  MIT open course http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/)
  九章算法(网上报名上课,中文讲解)个人觉得老师算法点拨到位,配合上面2课的
自学,效果很好。但是需要强调的是,对于零基础,不推荐直接上九章,否则难以消化)

  操作系统
  Coursera上的操作系统原理by Peking U https://www.coursera.org/course/os

  数据库
  Stanford University的introduction to databases:https://lagunita.stanford.
edu/courses/DB/2014/SelfPaced/about。         Coursera上也有这门课,不过这个
链接是Stanford自己的公开自学课程,所以随时可学,不用等coursera上的开课时间。
非常推荐这门课:
课程非常系统,因为是网课,所以配有网上测试、练习,学起来有互动,非常舒服;
课程分成几个session,根据不同的需要,有不同的学习路径,只学其中几个session也
不会有衔接上的障碍;
instructor讲得很好,思路清楚,为人风趣幽默。

  网络:在lynda.com上搜相关视频自学。

Internship
与此同时,在一个朋友的startup做了internship(非常感谢他和startup里的所有人)
。当时主要做web的前端,集中精力在HTML/CSS/JavaScript. 这个internship 的实战
经验,让自己对web development的基础有了更深入的了解。 这个期间 也发现web 
development还挺有意思,这也是为什么后来促成了 上有关于web的bootcamp。

“速成班”
Coding bootcamp 经常被戏称为“码工速成班”。实际情况也的确是长时间高强度的练
习与培训:
  immersive式的培训方式:一周上6天,每天9个小时(早9点-晚8点,中午 晚上各一
小时 break),持续12周。白天内容很多,任务比较重,晚8点下课后还会经常有作业
需要自学。整个作息像是回到了高三。然而转行的人需要的正是immersive式的学习。
不过这样的学习安排,对于兼职是没有精力完成的。

  各种学习资源和帮助:bootcamp有老师和teaching assistant(TA)。每天有2小时
左右的老师授课,然后学生自己做bootcamp设计的projects。在做projects的时候,有
任何问题都可以问TA。转行的人知道,如果身边没有人辅导点拨,一旦stuck在某个问
题上,就会浪费大量时间。

  良好的转行环境:反正身边的同学都是转行的人,谁也不比谁强到哪儿去,而且彼此
在沮丧的时候还会相互安慰和鼓励。精神的力量有时真是巨大的,很多转行的人不是败
在了需要学习的专业知识上,而是败在了自我怀疑的精神压力下。

  刷题:本以为是web development,就不会让刷题。没想到还是教了简单的算法,并
且要求我们每天刷一题。不过题的难度相当于leetcode easy or medium。最难的算法
教地是N Queens problem。

  简历上的帮助和network:在bootcamp整个过程中,会做几个project,这些project
放在简历上,找工作时至少容易过HR那关。这个bootcamp最大的好处是因为它在湾区开
办了有几年了,和湾区的很多startup和一些大中型公司有network,所以这些公司是愿
意给bootcamp students面试机会的。当然,能否把握住机会,还得看自己。
还可以改进的方面:
Bootcamp的同学,一个班20多人,背景形形色色,工科、文科、商科,各式各样的都有
。因为需要保证就业率,所以老师们教得也算尽责。可大概也是为了兼顾到大多数同学
,老师并没有对课程有很深入、很理论地讲解。不然相信在三个月内可以收获更多。

感想:
大家都会有疑问,上三个月课就真的能找到工作?其实自己从开始转行到找到工作,也
用了10个月的时间。这十个月,马不停蹄,自认为是能压缩到的最短的时间。记得即使
是陪老公去Las vegas 玩的几天,还每晚上还匆匆赶回酒店听 webinar 的算法课程。

其实,cs相对好找工作真正是因为 job market 短暂的供需不平衡。巨大的市场缺口,
才能让70%-80%的同学还是在毕业后三个月内都找到了工作。如今我仍然有深深的顾虑
,自学+bootcamp只是转行的一块敲门砖,想要成为真正的web developer或是software
engineer,bootcamp students在找到工作后还是有很长的路要走。

对于大多数人而言,选择读cs master 应该是最稳妥的做法。大学里系统扎实的正规教
育,容易走的更稳健。这里分享自己的不同的经历和感想, 只是希望能鼓励在转行cs
路上大家最终都能有所收获。

一些干货
前辈的转行指导
http://www.mitbbs.com/article_t/CS/31213391.html
http://www.1point3acres.com/bbs/thread-24531-1-1.html
http://www.1point3acres.com/%E6%83%B3%E5%9C%A8%E7%BE%8E%E5%9B%BD%E6%89%BEcs%E8%BD%AF%E4%BB%B6%E5%B7%A5%E4%BD%9C%EF%BC%9Fwarald%E6%8F%90%E4%BE%9B%E9%9C%80%E8%A6%81%E5%AD%A6%E4%B9%A0%E7%9A%84%E4%B9%A6%E7%B1%8D%E5%92%8C%E8%AF%BE/
https://www.mooc-list.com/?static=true

Comments

Popular posts from this blog

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checking a shared sec

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into /opt/course/1/context_default_no_kubectl.sh , but without the use of k

标 题: 关于Daniel Guo 律师

发信人: q123452017 (水天一色), 信区: I140 标  题: 关于Daniel Guo 律师 关键字: Daniel Guo 发信站: BBS 未名空间站 (Thu Apr 26 02:11:35 2018, 美东) 这些是lz根据亲身经历在 Immigration版上发的帖以及一些关于Daniel Guo 律师的回 帖,希望大家不要被一些马甲帖广告帖所骗,慎重考虑选择律师。 WG 和Guo两家律师对比 1. fully refund的合约上的区别 wegreened家是case不过只要第二次没有file就可以fully refund。郭家是要两次case 没过才给refund,而且只要第二次pl draft好律师就可以不退任何律师费。 2. 回信速度 wegreened家一般24小时内回信。郭律师是在可以快速回复的时候才回复很快,对于需 要时间回复或者是不愿意给出确切答复的时候就回复的比较慢。 比如:lz问过郭律师他们律所在nsc区域最近eb1a的通过率,大家也知道nsc现在杀手如 云,但是郭律师过了两天只回复说让秘书update最近的case然后去网页上查,但是上面 并没有写明tsc还是nsc。 lz还问过郭律师关于准备ps (他要求的文件)的一些问题,模版上有的东西不是很清 楚,但是他一般就是把模版上的东西再copy一遍发过来。 3. 材料区别 (推荐信) 因为我只收到郭律师写的推荐信,所以可以比下两家推荐信 wegreened家推荐信写的比较长,而且每封推荐信会用不同的语气和风格,会包含lz写 的research summary里面的某个方面 郭家四封推荐信都是一个格式,一种语气,连地址,信的称呼都是一样的,怎么看四封 推荐信都是同一个人写出来的。套路基本都是第一段目的,第二段介绍推荐人,第三段 某篇或几篇文章的abstract,最后结论 4. 前期材料准备 wegreened家要按照他们的模版准备一个十几页的research summary。 郭律师在签约之前说的是只需要准备五页左右的summary,但是在lz签完约收到推荐信 ,郭律师又发来一个很长的ps要lz自己填,而且和pl的格式基本差不多。 总结下来,申请自己上心最重要。但是如果选律师,lz更倾向于wegreened,