我是一名日语专业毕业的学生。当年因为生不逢时,导致大学毕业并没用相关工作机会。所以不知道做什么工作合适,刚好这时有培训机构找到我,学费一万五,花了3个月时间,培训了JAVA基础以及SSH框架,数据库的简单操作。出来后发现其实很多很多东西都不懂原理,面试也是应付,背一些面试题。后面就开始做一些简单的CRUD工作。
当时觉得这些是很难的。应该不懂框架的原理。JAVA基本功不扎实。数据库也不清楚。所以一直工作起来都很困难。动不动就去百度。后面做了2年JAVA后端,开始慢慢熟悉框架了。可是对JAVA语言我自认为基本功还不是很扎实,包括数据结构,操作系统原理。计算机组成原理等计算机科班的东西完全没学过。所以。我开始自学C语言,然后是数据结构。操作系统原理。高数等知识。接着学习了C++,开始才知道模板单继承,多继承。抽象类等。类该如何设计。内存模型。栈内存堆内存等基础知识。进程,线程通信等知识。网络编程中的应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。而我们应用程序的通信协议一般都是自己定义的协议。比如HTTP,等都属于应用层协议。而我们的传输层则一般是TCP/UDP协议用的比较多,IP协议则属于网络层,数据链路层则是ARP这些地址解析协议。一般用于路由器当中。而我们的物理层则用来表示计算机的真实MAC地址。这些看完了我觉得自己才真的算是对计算机软件工程这个行业的基础知识有了初步的了解。这个时候我再回过头来看JAVA,以及C#.这2个语言的相似性。都是基于C++的基础之上而新创建的面向对象语言。C#是属于托管语言,可以直接调用C++代码,也有显式的指针可以用。但是语法比较丑陋。而JAVA一般是隐式指针。更多的是用引用来表示一个类的实例对象。JAVA一般是值语义。所以我们一般看到JAVA函数传参是Object obj,这种形式,其实传进来的是一个新的对象。JAVA执行大家都知道,是再另一个软件里面执行。那个软件可以叫JVM,或者是虚拟机.把我们的JAVA代码编译成字节码来执行的。JAVA优点是跨平台。做服务器应用程序比较方便。有很多库可以用。生态多。缺点是有垃圾回收。需要写好回收算法。以及内存的占用较大。所以如果是需要做嵌入式应用底层,或者内存要求严格或者超高性能的场景JAVA并不太适合,至于C#,跟JAVA完全不是同一个东西.据我所知.除开超高性能外,win上能开发的,基本都可以用C#.至于PHP。本人也简单学习过,其用来写小网站是非常适合快速开发的。当然也用PHP写facebook也是成功的案例。不过毕竟是少数。关于Python我用到比较多的就是关于跨平台的时候项目自动化构建,是最合适的。win32就调用vbs去构建,unix系列就用SHELL去构建.当然了Python写web端也可以.不过适用场景是不同的。还有现在比较流行的用go去代替JAVA,C#。去做后端开发.也只是听一些人说过性能比JAVA还差。目前这门语言只适合高并发这个模块用go写。听说该语言自带高并发功能。以及另一门语言RUST,号称是高性能无GC的C++的类型安全版本语言。以后有时间也会再去了解一下这些语言。之前一路学C++,学习了STL,以及BOOST。发现很多东西大同小异。而最近一直再学习QT库。本来是想学习MFC的。可是最近几年这个库的行情不是很好。所以想从QT入手。了解些UI库。打算这半个月学完QT库自己做一些项目。