根本就没有卷的情况发生嘛。
我是一名41岁的程序员,11岁开始logo语言编程,如今c++也已经用了19年了。马上也要20年了。
去年的今天,我开始看跨平台的tcpip后台多线程服务器muduo,结果用了1年的时间,我基本上没有把这本书吃透。但是我却把代码进行了模块化。
也就是说,会了爬之后,开始学习走路,也就是说,开始使用dll的模块化。
其实这种dll模块,有两种模式,一种是共享库方式的,另外一种则是动态加载的dll模块,然后把各种要导出的class通过抽象接口类的对象的方式导出。
前者,需要包含lib文件,在编译的时候,就需要。而后者则是动态加载dll。那么这个的好处就是,我们通过抽象接口类,动态加载dll,这种就是模块。或者说是插件。
有了这些基础之后,我们就需要把 对象的共享指针,通过std::any的方式传递给其他的dll里面的对象。这样的好处就是,任何对象都不隶属于 某个固定的上级。可以根据需要,随时转到到指定的地方。 这样的好处就是高内聚和低耦合。这就是软件工程讲述的内容。
也就是说,我们要走过数据结构和算法阶段,再走过设计模式阶段,然后再走完软件工程阶段,然后再步入系统分析和架构阶段,再走入分布式运算 或者gpu,fpga异构运算环节。
那么这些大约需要多少年?就数据结构和算法,想要精通的话,就得5年。
这里面包括熟练使用一个图形库。然后算法可视化,数据可视化。流程可视化。
设计模式阶段也得2-3年
20多种设计模式,在 普通的class里面落地,以及在模板编程里面落地
当然也包括对应的数据和流程的可视化
软件工程阶段,恐怕得10年。
这里面,有测试驱动开发,领域驱动开发,敏捷开发等等。
系统分析和架构也得5年。
对所有需求,建立一个森林,每棵树都对应一个需求。理解,分解,破解,转化。4个阶段。
分布式运算,也走5年才能贯通。
后台多线程服务器开发。
Tcpip。平台提供的对tcpip的支持的库,
驾驭这个库的开源库。
整个开源库的内存和流程的可视化。方便调试,查看各个数据包的情况。
以及客户端,服务器端,运算端的数据运输情况。
此时恐怕得一面墙 12个屏幕,才能把想要的内容,全部显示出来了。
至于gpu和fpga的opencl编程,目前还没有时间去做。
你想想我都41了。还有那么多得事情要做,根本就卷不起来。
所以说,题主的女友要转就转后端c++。干到70岁,恐怕还有很多东西学不完,
自然,能干的事情,就越多。