关于详细的课程安排和教学内容正在构思中.
可能有很多人会质疑两周时间究竟能学到什么。我认为,可以了解软件开发涉及的的基本内容,以及掌握解决问题的思路.
可以参考这两篇文章:
作为初学者,在工作过程中一定会遇到各种没见过的问题,怎么样通过网络快速解决,是一种重要的能力。
文章作者自己也在很多方面作为初学者,但是通过认真和努力,不仅完成了工作,学习了新的技术,而且辅导了两位新人。我觉得这是一种比较好的学习方式。
一般来收,解决新遇到的技术问题的思路是:
首先,理解业务需求,明白自己要做什么.
然后,在自己已有的知识储备中寻找可能的解决方案.可以利用的资源包括自己学习和开发过的项目,公司团队有做的类似的功能,或者在网上遇见的开源解决方案.如果完全没有思路,那么利用网络搜索,或请教别人.大部分问题都不会很特殊或很难,在网上可以找到思路或者解决方案.
之后要进行验证,运行demo看能否实现效果,学习基本用法.如果demo可用,仿照demo进行修改,整合在自己的代码中.
最后是测试,以及根据测试出的问题进行修改和调整.
总体来说,思路和整体控制能力比较重要,具体的技术细节在工作过程中可以慢慢熟悉.如果工作内容是专注于某一方面的开发,可能三周或者三个月之后,实际工作中会用到的技术点就都接触过了,基本可以像有经验的开发人员一样,遇到问题无需请教或搜索,脑中也会有大概的解决思路.
下面附上目前构想的课程安排计划,按照旋疾风式教程的风格,快速向前推进。
第一天:半天
计算机 硬件 软件 历史背景 基础知识 发展情况 编程的概念 各种语言 开发工具 的介绍 汇编 C lisp
半天
基础开发环境配置 Idea git jdk maven node npm webpack 前端脚手架 spring boot init
第二天:
编程语言基础语法 值 常量 变量声明 条件 循环结构 结构化程序设计 注释 文档
jvm node 运行时环境 类型系统 变量作用域 包和模块管理机制 编译 解释 混淆
第三天:
函数式思想 及实现 集合与数据结构
面向对象思想 及实现 接口与泛型
第四天:
关系数据库 sql 增删改查 连接查询 事务
数据访问框架 数据源 JDBC 驱动 连接池 spring data json和xml restSql
第五天:
网页基础 HTML5 CSS3 Bootstrap UI库
HTTP及web开发基本概念 ES6基础 dom 事件 ajax
第二周:
Vue 微信小程序 浏览器调试工具的使用
混合打包 跨平台开发介绍 election ReactNative
网络基础概念 TCP/IP协议 并发机制与多线程 高性能IO 异步调用
web服务器 和 web框架 spring mvc koa2 对象序列化 格式转换 JSON object XML
异常处理机制 日志系统 性能分析和优化基础
cookie session 权限控制 客户端存储 非关系数据库 内存数据库 分布式数据系统 介绍
Linux操作 shell powershell cmd操作 nginx配置
docker k8s 使用 大数据 云计算 spark 介绍
常见软件项目类型和业务场景 软件公司分类 开发风格 流程 行业现状
技术新动向 kotlin coljure 微服务 介绍
以上基本的课程内容预计用十个工作日。半天安排四节课。剩余晚间和周六日的时间可以安排自学和练习。
杂项 浮点运算 货币时间格式处理 正则表达式 字符串处理和国际化 常见配置文件格式介绍 代码规范 开发流程 (分配在平时课程间隙,或者晚自习,周六日等时间)
多媒体开发 UI设计 交互设计 图形 音频 视频 canvas (根据个人兴趣选学或自学)
项目实践 分模块 分方向 前端 后端 全栈 devops (根据整体课程进度和个人学习情况参与)
安排Java和Javascript两种语言同时对照学习能更好的理解编程的实现思路,不至于陷入具体技术和语法细节的限制中。另外这两种也是工作中使用最多的语言,有了这两门语言的基础,基本上就可以快速入门和上手其他语言和环境。
总体来说,课程主要是为零基础和无经验者提供对软件开发的基本介绍,以便在遇到问题时能快速理清思路,找到最有可能解决问题的方向.根据个人经验,虽然在网络上能够找到大部分问题的答案,但由于网络信息庞杂繁芜,如果没有相对清晰的思路很难快速找到对自己最有价值的内容.技术发展日新月异,但是对整体技术有清晰的思路能帮助程序员在各种混乱的环境中快速找到突破口,以更小的代价获得可用的解决方案.
网友评论