如何学习一门编程语言
语法和基础
数据类型
表达式,语句,代码块
面向对象:封装,继承和多态
线程和异常处理
标准类库(以java为例子):
类库:jar包:类库是以jar包的形式发布的。jar包是Java中组织多个class文件的方式期本质是一个zip压缩包。后缀名是jar
类库是以jar包发布的、可以完成某个功能的一个或多个jar包
工具(以java为例子)
maven:
构建和打包,丰富插件可以组成复杂的构建过程
git:
源代码控制
IDE
jenkins:
自动化集成
底层和进阶
底层——内存相关:
内存堆(heap)和线程栈
JMM
GC(garbage collection):GC log分析和GC调优
底层——JVM和Java相关规范
JVM + JAVA字节码
Class文件格式
Class Loader
进阶
多线程和线程安全
程序可读性
优化
超越代码:能力(不仅限于某种编程语言)
本能+直觉:对问题的难度、复杂性和需要的时间有一个直觉的反应。能够快速准确的判断问题的难点和可能出问题的地方
分解+架构:拿到一个问题时,可以将问题分解成某种编程语言/技术可以解决的子模块/功能
解决问题:任何工作中的问题。从需求分析到架构设计,从接口设计到代码实现,从文档到测试,从脑洞大开到靠谱创新,从内存使用到CPU占用,从bug可以重现到bug难以重现,从继承到联调,从数据到环境,从数据库到消息队列,从在线到离线,从开发到部署,从测试环境的问题到生产环境的问题,从单台机器的问题到集群分布式得问题,从上线到维护,从技术支持到hotfix,从性能到监控,从技术栈更新到系统重构,只有想不到没有做不到,程序员不只是写代码!
原文地址:https://www.cnblogs.com/blamwq/p/12110495.html
时间: 2024-12-11 11:18:52