在新公司进步很慢怎么办?

我一开始进去,就说自己要通读代码,可是大家一致说不需要;奇怪的是,上周头让我找mentor给我单独任务,我还以为是要我写代码呢,没想到mentor说的还是让我读代码,找了一个相对写得清晰的solution来读,然后让我自己练习写测试单元,有Tests, IntegrationTests。
我心里苦啊,早知道我早就读了好吗?刚刚入职的时候,干劲多足啊

一个新人入门说我要把全派武功都学一遍,一群老弟子入门多年才会几招的必然都是要用那种不知天高地厚的眼神的看着你!开始努力读代码和号称要通读一遍的差异如同先说我试试看先学一招大洪拳和要立马练就九阳神功一样的区别
 

dimples

一网
网友一场,给宫保一点建议:

刚入行容易胡子眉毛一把抓,什么都想迅速学,什么都想精通,最后往往效果适得其反。
上来就扯架构扯什么Docker, AWS,是不是早了一点?学Docker, 就要学管理工具Swarm或者Kubernetes. 这些东东是要求深厚的Linux功底和对Scale Up/Out的彻底理解。
成为一个真正的软件工程师,full stack的,至少要工作五年时间。有些东西不应该提前知道的就不要去知道。

这是一些个人进度建议时间表,假设前提你在学校已经基本了解编程(算法/数据结构/面对对象/软件模式)和数据库概念。
0~2年,前端。两年内可以做到独立开发前端项目。对Bootstarp, Angular, jquery等等要了如指掌。千万不要认为前端是低端女程序员干的话。前端是将来生存的基石。
2~3年, 后端。python, java是必会的。(学C#我有点疑问,Windows平台大部分都不是open source,前途在哪里?)python, java的理论知识和学校的C/C++是相通的。工作中主要是学习Framework。
3~4年,前后端都会了,自己可以独立开发项目。接下来学DevOps。这一年是真正的学习。项目怎么发布,怎么部署,怎么“多快好省”,怎么管理code怎么版本控制。你要学会怎么安装Git Server, 怎么安装Oracle, 怎么安装你前三年你code运行的所有环境,等等,包括怎么打包(什么image/container)去Docker(这都不能算什么技术)。这一年是最痛苦的。因为可能要自己花钱,租亚马逊的机群和数据库cluster. (舍不多孩子套不到狼,也是为自己以后创业多个选项)
4~5年,架构学习。回忆一下自己单位项目是怎么运作的,项目与项目之间是怎么搭配的。是event driven 还是 layers ,或者是microservices。听起来是抽象的,实践是最好的学习和理解。

五年后,如果没有什么大错。一个真正的软件师就会诞生。
 

dimples

一网
5~6年,培养自己一种能力,任何一门计算机新技术或者一门陌生语言,一个月之内有能力学会和应用。这也是软件开发人员的一项基本技能。举个例子,你从来没听说过C#是什么东西,一个月以后你应该可以开发一个项目是用C#写的。
 

gongbao

宇宙最最知名园友
你的mentor是对的,通读整个codebase不现实也没必要,找一个清晰的solution,搞清楚从前往后mvc各模块之间的关系即可。debug是需要经验积累的,但首先要搞清楚一个总体的控制流和数据流.
谢谢,那我就抽时间 好好读一读他布置的solution
 

gongbao

宇宙最最知名园友
@gongbao, 我对C#也不熟悉,没办法给你特别具体的建议,但从我个人的经验来看,了解一个Web Application平台可以尝试去抓住以下几个重要的点
1) 从数据存储出发
1.1. 先搞清楚数据存储有哪些途径,是都是基于关系型的数据库,还是有No-SQL database, 是否还有内存数据库,或者其他的基于文件的persistent 数据存储方式,针对这些不同的存储方式,争取先对一些核心的结构有所了解,如果是关系型数据库,那么应该尝试了解一些核心表的结构和数据字典,如果是基于JSON等的非关系数据库,则应该了解JSON的SCHEMA定义,从而知道持久化数据的定义方式
1.2 针对1),在代码级别是否有对应的代码来和数据库之间进行映射,做ORM
1.3 是否有专门的数据访问层DAO做基本的CRUD
1.4 业务逻辑如何利用1.2 和1.3 中的模块组织,1.2和1.3不一定是必须的,也可能是业务逻辑层直接和数据存储层打交道
2 )从URL请求出发
 2.1 首先搞清楚这个URL的Response是什么样,这个可以通过BROWSER的INSPECTOR查看,如果Response是一个JSON,则一般来说是一个Restful服务,如果不是的话,则搞清楚URL所对应的传入参数是什么,包括URL中的以及HTTP Request里包含的
2.2 弄清楚谁负责URL的解析和转发,这个是一个关键,比较要搞清楚,当然这个解析和转发的不一定是自己写的代码,也可能是所使用的框架自带的,那样也应该会有相关的配置,弄清楚这个,就可以知道某个URL会给哪个具体的类进行处理
2.3 弄清楚2.2 转发请求后的具体处理类的一般结构,如怎么解析Restful中的URL里的Path,如何处理不同的GET,POST,PUT等HTTP请求
2.4 弄清楚2.3中如何和1.4中进行交互,调用具体的业务逻辑,是通过直接调用,分布式异步调用,还是通过消息机制或者 Reactvie 的订阅/发布

搞清楚了这两块内容,那么就能知道从前往后的整体数据流和控制流。在此基础上再结合具体的业务,就能比较快得知道问题定位,并进行相关调试
太专业了,非常感谢! 这些问题,我可以直接问组里其他人,包括我的导师吗?还是自己读代码,摸索呢
 

gongbao

宇宙最最知名园友
网友一场,给宫保一点建议:

刚入行容易胡子眉毛一把抓,什么都想迅速学,什么都想精通,最后往往效果适得其反。
上来就扯架构扯什么Docker, AWS,是不是早了一点?学Docker, 就要学管理工具Swarm或者Kubernetes. 这些东东是要求深厚的Linux功底和对Scale Up/Out的彻底理解。
成为一个真正的软件工程师,full stack的,至少要工作五年时间。有些东西不应该提前知道的就不要去知道。

这是一些个人进度建议时间表,假设前提你在学校已经基本了解编程(算法/数据结构/面对对象/软件模式)和数据库概念。
0~2年,前端。两年内可以做到独立开发前端项目。对Bootstarp, Angular, jquery等等要了如指掌。千万不要认为前端是低端女程序员干的话。前端是将来生存的基石。
2~3年, 后端。python, java是必会的。(学C#我有点疑问,Windows平台大部分都不是open source,前途在哪里?)python, java的理论知识和学校的C/C++是相通的。工作中主要是学习Framework。
3~4年,前后端都会了,自己可以独立开发项目。接下来学DevOps。这一年是真正的学习。项目怎么发布,怎么部署,怎么“多快好省”,怎么管理code怎么版本控制。你要学会怎么安装Git Server, 怎么安装Oracle, 怎么安装你前三年你code运行的所有环境,等等,包括怎么打包(什么image/container)去Docker(这都不能算什么技术)。这一年是最痛苦的。因为可能要自己花钱,租亚马逊的机群和数据库cluster. (舍不多孩子套不到狼,也是为自己以后创业多个选项)
4~5年,架构学习。回忆一下自己单位项目是怎么运作的,项目与项目之间是怎么搭配的。是event driven 还是 layers ,或者是microservices。听起来是抽象的,实践是最好的学习和理解。

五年后,如果没有什么大错。一个真正的软件师就会诞生。
谢谢指导。你说的技术,我们好像基本上都用了。的确是microservices RESTful。。。我上来就扔到这么复杂的环境里面,所以无所适从。也不知道公司愿不愿意给我5年时间来学习成长
 

gongbao

宇宙最最知名园友
我也经历过junor, graduate,也看过新进的graduate, junior。

一般是先给很简单的活。
比如修改一个label, 修改一个text,找一个很简单的bug.
慢慢熟悉了,再给大点的活。

宫保的公司的工作方式我没见过。
我觉得刚刚入行,pair programming更好,一个mentor带着我俩人一起编程
 
宫保,新公司这么不容易啊。看不懂IT大侠们说的是什么,才知道原来坛子里大侠们都这么身负绝技的闯荡江湖。宫保,加油加油。武林少侠走在成长的路上。何况你还有独门武器传说中的瑞典语。
 

dimples

一网
宫保,新公司这么不容易啊。看不懂IT大侠们说的是什么,才知道原来坛子里大侠们都这么身负绝技的闯荡江湖。宫保,加油加油。武林少侠走在成长的路上。何况你还有独门武器传说中的瑞典语。
仔细观察,这里很多网红都是混IT的,茄妹,松鼠,007KJJ, 太阳李,fieldmarshal,。我很好奇他们具体在做什么。总的来说,同行冤家都相轻。我一般都不搭理这些人帖子。
 

注册或登录来发表评论

您必须是注册会员才可以发表评论

注册帐号

注册帐号. 太容易了!

登录

已有帐号? 在这里登录.

Similar threads

顶部