- 本篇博客是写给学弟学妹们的,希望学弟学妹们能从中找到学习的捷径。
- 兴趣!!!兴趣是永远是最好的老师,当你对一个事物有无限兴趣时,你才能有无限的动力为之学习。
- 毅力!!!学海无涯苦作舟,学习是永远没有止境的,在遇到瓶颈的时候一定要坚持。
- 实践!!!有句老话是“好记性不如烂笔头”,对于程序员而言就是“好记性不如烂键盘”。你看再多的教程,也不如自己亲自敲一遍代码,自己做一个项目。
- 交流!!!多逛博客、多逛论坛、多听讲座、多参加互联网企业举行的青训活动、多参加高校间的竞赛、多逛
GitHub
和Gitee
。
- 不积跬步无以至千里,不积小流无以成江海。不论你将来是想做互联网那个方向,没有基础,你都会寸步难行。编程基础是区别科班与培训机构重要特征。
- 这个标题肯定有人觉得很奇怪,为什么C语言学习既要认真,又不能投入过多的精力?且听我慢慢道来。认真学习C语言,是因为C语言太太太经典了,其他编程语言或多或少都有C语言的影子。但是C语言学会程序设计思路就行了,不要投入过多精力。C语言是不严谨且危险的,C语言的指针是可以直接 *** 作内存的,这是极度危险的行为,现代编程语言都摒弃了这种行为,就连
C++
也是对指针进行了限制。C语言的就业前景我并不看好。随着Arduino
和mircoPython
等快速开发语言的崛起,以及32位单片机造价的逐步下跌,C语言的市场必然会逐步萎缩。
- 面向对象编程是现在主流的开发方式,封装、多态、继承,是面向对象编程的核心。如果你未来想做计算机相关的工作,面向对象编程必须要掌握。
- 这些都是基础知识,没说的,必须学会、学好。
- 如果你不会计组,那进制换算、字符编码、浮点运算、IO中断处理你肯定就都不会了。
- 如果你不会计网,那TCP握手、UDP传输、波特率你肯定就不知道了。
- 如果你不会数据结构,那编程时遇到红黑树、图的深度广度遍历问题你就抓瞎了。
- 如果你不会数据库,那还编啥程序啊?哪有不用数据库的项目啊?
- 如果你不会 *** 作系统,那程序死锁了你都不知道是什么问题。
- 由于Linux是开源免费的,因此Linux是最受欢迎的服务器 *** 作系统。学会Linux和Shell脚本是很有必要的。
- 数学对于计算机来说真的很重要,本科阶段一定要学好高数和线代。高数和线代是机器学习、矩阵论、离散数学(组合数学)、数论算法、计算机图形学、人工智能等学科中基础的基础。如果一个程序猿只会CURD,只会做些ERP、进销存系统,那是很悲催的一件事,这种程序猿一点都不酷 ( ̄ー ̄)
- 首先,我们要确定你进一步学习的方向,计算机相关的知识太多太多了,选对发展方向是很重要的!
- 编程中,很多技术是语言无关的,这些技术不论是Java项目还是Python项目都会用到。
- 设计模式:这些知识可以去网上搜一下
23种设计模式
,教程很多。 - 分布式服务框架:Dubbo、Spring Cloud
- 版本控制软件:Git、SVN
- 消息队列:kafka、RabbitMQ、ActiveMQ
- 程序配置文件:JSON、XML、YML、properties(Java)
- 关系型数据库:MySQL、SQL Server、Oracle、MongoDB
- 非关系型数据库:Redis、HBase
- 大数据框架:Hadoop生态圈、Spark生态圈、pandas(Python)
- 自动化测试、爬虫:Selenium、requests(Python)、requests(Python)、urllib(Python)、scrapy(Python)
- 接口测试:PostMan
Java
进阶学习首先要学的就是J2EE
,然后再学Spring Core
、Spring MVC
、Spring Boot
、Spring Cloud
、Dubbo
、Hibernate
、MyBatis
、Maven
。Java学习我推荐看狂神说的视频和阿里巴巴的Java开发手册。
Python
进阶学习首先要学的就是Django
和Flask
,学会这两个框架,做一些web小项目就没问题了。但是如果想玩出点花样,还得学习numpy
、os
等库。Django的学习直接看Django官网,Flask的学习直接看Flask官网,官网永远是最好的学习网站。
WEB
开发没什么好讲的,网上有各种各样花里胡哨的框架和组件,但这些组件都是由HTML
、JS
、CSS
、TS
组成的。WEB
开发首先要学好HTML 5
、ES 6
、CSS 3
和TypeScript
。学好这四样后,就可以去学习Ajax
和Axios
了,学习如何通过WebService
与后台进行通信。当你学会接口后,你就可以学习一下nodejs
、npm
和yarn
。学完这些就可以学习Vue生态
、React生态
和Angular生态
了,这三个框架可以使前端开发变得更敏捷。如果你想让你的网页变得更加好看,可以参考我这篇文章。
- 初学者不要碰这东西,这是把双刃剑,用低代码平台确实可以敏捷开发,但是你的项目架构就固定死了,未来架构升级只能依靠平台代理商,而且低代码平台会使初学者不去思考代码实现的原理。而且低代码平台的依赖一旦报出漏洞,低代码平台供应商能否及时处理也是个问题。
- 这里我得吐槽下浪潮的
iGIX
平台,太难用了,代码只能在平台里写,不支持IDEA快捷键
,没法打断点,代码提示也没IDEA
好用,代码提交莫名其妙的报错只能手动提交,分布式事务没有考虑过TCC
,TCC
逻辑得自己手敲。。。
企业级项目开发完毕后,需要部署到用户服务器中,但我总不能直接把jar包放到用户服务器里吧?用户直接反编译一下,不就能看到我的源码了吗?万一用户拿我代码去卖怎么办?因此,这里我总结了以下几种防止反编译的方法:
(1)代码混淆- 市面上有多代码混淆,但大部分都是修改类名、方法名和变量名进行混淆。这种防止反编译的方式很Low,只要对业务很熟悉,代码很容易被恢复。
ClassLoader
解密的思路是,所有类都要通过ClassLoader
类解密后加载到JVM
中才能运行。ClassLoader
类一般不放在用户服务器上,我们公司把ClassLoader
类放到SuperDog
(一个加密外设)中。
- 把
Jar
包部署docker Linux容器
中,由Linux容器
提供服务,利用Linux容器
进行加密。
- 代码部署于公司内部服务器,由通过云应用,给用户提供服务。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)