java吧 关注:1,191,136贴子:12,603,511
  • 7回复贴,共1

给大家讲讲真实工作中的开发和学校里有什么不同

只看楼主收藏回复

该贴已被java吧屏蔽


IP属地:贵州1楼2022-03-09 15:32回复
    在学校里学编程,讲课老师的目的是为了讲完讲课用的教材,完成课程设计,以及考试及格。
    比如学java,一般是老师按照某些书讲,也不管书里的java技术是否真实会在实际开发中用到,或者说,不少讲课老师平时是不做项目的,他们也不知道项目开发会用什么技能,以及各项技能会用到什么程度,这也是为什么不少学校还在讲swing界面编程,还在讲ssh这种早就不用的框架。


    IP属地:贵州2楼2022-03-09 15:33
    回复
      我平时也见过一些学校的教材,这里就以spring boot技术为例,讲下学校里讲的和项目所用相关技术的差异。
      学校里,一般会从spring boot启动类讲起,再讲用jpa操作数据,再讲一些控制器层的注解,比如@RequestMapping等,再讲一些技能时,会以语法为主,比如某个方法什么意思,相关参数什么含义,要实现某个功能,可以用调用哪些方法输入哪些参数,再着重讲一些注解的含义。
      也就是说,学校里的讲课过程中,老师会着重围绕语法讲,讲清楚某个对象以及某个方法的含义,但在实际工作中,开发者是会以任务为导向。


      IP属地:贵州3楼2022-03-09 15:46
      回复
        比如用spring boot做开发,项目经理顶多给开发者一些可供参考的例子,让开发者实现某个业务功能。此时如果开发者还是按学校的步骤,先理解api的用法,再理解诸多参数的含义,再此基础上再开发,一定会延误开发进度。


        IP属地:贵州4楼2022-03-09 16:15
        回复
          下面从诸多维度来进一步说明学校编程和工作中编程的差异。
          从所用的开发语言来看,就java方面,能讲现在比较实用的spring boot框架的学校这两年才多起来,不少学校还在讲ssm框架,甚至是ssh框架,我不知道是否还有学校只讲java核心,不讲Java web开发框架。但公司里用的,至少是ssm,大多数应该是spring boot。
          从项目管理角度来看,一般公司会用maven管项目,用git管代码,用jenkins做部署,用jira管进度,甚至还会用docker和k8s,而在学校里,顶多就用个集成开发环境+Maven吧。


          IP属地:贵州5楼2022-03-09 16:37
          回复
            老哥,给你顶一个


            IP属地:北京来自Android客户端7楼2022-03-09 16:42
            回复
              从项目部署角度来看,一般公司至少会在一台机器上部署项目,多的话,用集群部署也有可能,而且有可能引入一些分布式组件或spring cloud alibaba微服务组件来应对高并发,但在学校里,一般只讲单机版完成功能吧。甚至当下,能用spring boot(或ssm)框架讲清楚一整套增删改查流程的学校,已经算比较好的吧。
              从功能复杂的角度来看,学校里会讲从前端到后端再到数据库这整个开发流程,但在实际工作中,在每个流程里,还需要考虑各种异常处理情况,比如参数错误怎么办,数据库连接有问题怎么办。


              IP属地:贵州8楼2022-03-09 16:49
              回复
                从工作任务角度来看,学校里估计只会要求学生会写代码,在工作中,程序员不仅需要会写代码,更要会做单元测试,做代码质量管理,参与数据库设计,参与项目发布,以及通过看日志解决实际问题。
                从代码编写方式来看,学校里一般会要求用符合教科书的方式来写代码,比如设计数据表要符合三范式的规范,应当尽量避免重复写代码,重复代码应当写入函数等。但在工作中,一切是要围绕进度和成本,比如某段代码确实应当重构,但临近发布,来不及优化,所以只能用低质量的方式来编写,或者某项目组没有预算找前端开发,所以只能用比较low的方式来设计前端框架。


                IP属地:贵州9楼2022-03-09 17:04
                回复