绝大部分的不良编程习惯都源于无知,而没有任何其他原因。必须一个一个的去掉这些无知。这也是那些好的编程书籍所尽力展示给我们的。

一、请确保你不会在编程的时候犯下面的这些普遍的错误:

1. 盲目拷贝代码

你经常会发现你需要的代码在一些别的程序里面有。整段的拷贝代码并且就这么使用它而不去烦恼于理解每一行代码是很诱人的。

有时候你拷贝的代码可能太大了以至于没有时间去完全理解它。如果你拷贝任何代码都像这样,就会有让你的程序变得脆弱易出bug等风险。以后产生了bug,你会发现很难理解这些代码,因为你从来没有写过它。甚至于你会发现很难去找出bug并且修复它,特别是如果拷贝了很多代码在程序的不同地方。

所以当拷贝代码的时候要小心,即使很少的代码。确保你完全理解它了。如果你以前用过一段代码并且可以百分之百的保证它可以工作,那么它是安全可用的。但是如果不是的话,就要当心了。

2. 每次都从头开始

你认为每次都从头开始会很好,但是实际上它浪费了太多资源和时间如果你需要的东西已经存在了,那么使用它们。不要反复重复最基础的东西。你可以把思考用在其他方面而让你的作品更加优秀。

如果一个API、框架或者游戏引擎让你的任务更加轻松,你没有理由不适用它们。你的目标不是展示你有多么的优秀,也不是证明你可以独立完成任何任务。你的目标是保证你的应用完美工作,并且尽可能少花费一些资源去创造它们。

如果你这样做,你可以用更少的时间去完成同样地工作。时间就是金钱,即使是你为你自己工作,你也应该试着在同样的时间赚更多的钱。

3. 没自己尝试就开始Google

如果你总是没有自己试一试就通过外部方法来搜索答案,那么你的思维永远都不会受到挑战。

当你的思维停止挑战,你自身的编程技能就会停止增长。把你自己的任何技能都练得很棒,你就可以自己解决问题,这也适用于程序开发。

你是创建一个已经存在的东西,你从来不进行原创。这真是你想要做的吗?

搜寻存在的解决方案看起来很聪明,但是这会蒙蔽你的双眼,你的懒惰会阻止你成为一个好的程序员。如果你真的你想要搜寻一个解决方案,至少,开始的时候你在这个问题上先花一点事件思考一下。

也许你自己不花多少时间就能解决掉它。也许你会有比其他人更好的解决它。也许你的解决方案比其他人的更加精确。

如果你不尝试,你永远都不知道。

4. 忽略警告

这是一个早期我进行程序开发时犯的另一个错误。我不能告诉你当你的程序中出现几百个警号和一次都不出现有什么大的不同-最重要的是忽略掉它就出现新的问题。

警告通常是你做的东西可能不是每次都能正常工作的一个标志。有时,忽略这些警告会造成很大的安全问题。但是真正的问题通常是出现在程序出现几百个警告,或者程序不能正常工作时。

要尽早的处理警告。干净的代码看起来舒服工作起来也会很高。记住- 对待警告和对待错误一样 .

5. 快速修复而不是永久性解决

通常,我们仅仅是草草的修复一下,很少会去从根本上解决这个问题。能正常工作了,问题也处理掉了。但是如果你一不小心,问题又会以不同的方式重新出现。

无论你怎么修复一个问题,都应确保你不会把整个系统破坏掉。修复应该提升整个系统的运行状况,而不是让它更慢或更笨重。

任何情况下,都别编写未经测试的半吊子代码。在你的程序未写完前,不要发布它。别编写不会使用的无用代码。

这都是一些我们犯的一般性错误,因为我们喜欢在工作花更少的时间而去干其他事情。但这是不行的,迟早你都会为确保你的代码不出问题而负责。

越早的练习正确的编程方法,就对你的用户和自己越好。有时成为一个好的程序员意味着你不会犯糟糕程序员同样的错误。

二、下面是一些自学常用的网站收藏不吃亏

图文类的教程网站:

菜鸟教程:https://www.runoob.com/java/java-tutorial.html 教程免费,适合基础入门

W3Cschool:https://www.w3cschool.cn/ 教程免费,适合基础入门

How2j: https://how2j.cn/ Java基础到高级,还有各种框架、中间件教程

书栈网:https://www.bookstack.cn/ 免费的在线电子书、笔记、文档网站

还有其他免费图文教程、个人站点的例如importNew ,我要自学网等也可看看。

视频网课网站

黑马程序员:java视频教程从入门到精通(完整版)超千万下载量 有很多免费不错的课程,出版的书1904所高校都在用我大学也用过,也很有含金量,可以看

B站:https://www.bilibili.com/ 有"B站大学"美称

对于视频类教程网站,首推B站,很多培训机构会将部分高质量视频放到B站吸引用户,这些免费资源可以利用好,并且B站是个开放的平台,有很多up主会自己录一些视频讲解也是相当不错的。还有一些培训机构可以到官网获取一些免费知识,可以入手一波学习。

刷题网站

力扣:https://leetcode-cn.com/problemset/all/

牛客:https://www.nowcoder.com/

适用ACM选手的一些刷题网站:杭电oj、 Codeforce、 Vjudge 、Atcoder

Java开发也要刷题吗?那是肯定的,找工作无论大厂小厂(尤其大厂)避免不了笔试题,力扣和牛客上都有剑指offer,建议刷2-3遍,力扣hot100一定要刷一下,如果冲击大厂那一定要刷200道以上才行。

其他学习网站

csdn:https://blog.csdn.net/ 最大中文博客网站,结合搜索使用

博客园:https://www.cnblogs.com/ 老牌社区,依然有很多用户

知乎: 知乎 - 有问题,就会有答案 有很多高质量问答、文章、专栏

掘金:https://juejin.cn/ 社区较新,前端用户较多,内容质量相对较高

思否:https://segmentfault.com/ 文章内容质量不错,问答质量较高

github:https://github.com/ 全球最大开源社区,有非常多的开源项目

Stack Overflow: https://stackoverflow.com/ 全球最大技术咨询交流平台

V2EX :https://www.v2ex.com/ 高质量交流社区

至于51CTO、Infoq、开源中国等社区内容质量也很高,但用户相对较少。这些学习网站和资源不向前两项介绍的知识成体系化,这些平台相对都是流动交互性很大,所以你需要找到适合自己的资源,要利用好搜索的功能,此外各平台你也可以关注觉得不错的博主阅读他的专栏文章,收益也是很大的。

推荐书籍

自学Java我推荐的书籍为《Java从入门到精通》,有案例、代码跟着学很容易懂。

当然被业界称为为四大名著书籍质量也不错:

《JAVA语言程序设计》----初级

《JAVA核心技术》卷I----初级、《JAVA核心技术》卷II----中级

《JAVA编程思想》----初级~中级

《Effective Java》----中级

在跟着书籍学习的时候,有困难的内容也可以先放一放,还有Java Swing等窗口应用部分也可跳过。这些书不需要全买,有一本工具书就足够了

三、自学java路线(知识图谱必须保存啊)

java环境安装包
https://pan.baidu.com/s/1k4gLsaBzSI6bbjYKwx-Jkg 提取码:qida
Java基础
Java基础语法-面向对象-集合-IO-线程与并发-异常-网络编程
java基础:Java基础入门视频教程,零基础小白自学Java必备教程_哔哩哔哩_bilibili
Java进阶
java进阶13天:Java13天进阶教程,深入学习Java编程核心思想_哔哩哔哩_bilibili
API: Java基础教程2020新版JDK8日期API解析_哔哩哔哩_bilibili
数据库
Mysql基础:初学小白,从零带你掌握mysql数据库_哔哩哔哩_bilibili
Mysql高级:MySQL全套教程,超详细的MySQL数据库优化,MySQL面试热点必考问题_哔哩哔哩_bilibili
Oracle:Oracle数据库精讲,从0到1学会Oracle数据库_哔哩哔哩_bilibili
Sharding-JDBC:深入Sharding-JDBC分库分表从入门到精通【黑马程序员】_哔哩哔哩_bilibili

javaweb
Hmtl-css-javascript:完整JavaWeb快速入门教程【收藏比赞多系列】_哔哩哔哩_bilibili
JQuery:Java教程 老牌前端框架Jquery从零到精通_哔哩哔哩_bilibili
AJAX:前端基础教程Ajax零基础入门_上部_哔哩哔哩_bilibili
vue.js: vue前端基础教程-4个小时带你快速入门vue_哔哩哔哩_bilibili
编程强化
Jvm优化:JVM完整教程,全网超高评价,全程干货不拖沓_哔哩哔哩_bilibili
数据结构与算法:Java数据结构与算法,全网资料最全,154张数据结构图_哔哩哔哩_bilibili
软件项目管理
Maven:2天吃透Maven项目管理工具_哔哩哔哩_bilibili
SVN: SVN视频教程_哔哩哔哩_bilibili
Git:Git零基础入门到实战详解_哔哩哔哩_bilibili
Jenkins:Java教程自动化部署Jenkins从环境配置到项目开发_哔哩哔哩_bilibili
技术框架
Spring:Java进阶教程spring框架,深入浅出讲解细致_哔哩哔哩_bilibili
SpringMVC+mybatis:Springmvc+Mybatis由浅入深全套视频教程day01_哔哩哔哩_bilibili
mybatis plus:MybatisPlus深入浅出教程,快速上手Mybatis-Plus_哔哩哔哩_bilibili
Jpa:视频去哪了呢?_哔哩哔哩_bilibili
spring data:java进阶教程数据层全栈方案Spring Data高级应用_哔哩哔哩_bilibili
分布式架构
Zookeeper+Dubbo:Dubbo快速入门,Java分布式框架必会的教程_哔哩哔哩_bilibili
Springcloud:SpringCloud从小白到精通教程,Spring Cloud超完整教程,Spring Cloud微服务架构开发项目实战_哔哩哔哩_bilibili
Skywalking:java基础教程全面的深入学习Skywalking_哔哩哔哩_bilibili
服务器中间件
Rabbitmq:RabbitMQ全套教程,RabbitMQ消息中间件到实战面试_哔哩哔哩_bilibili
Rocketmq:RocketMQ系统精讲,电商分布式消息中间件,硬核揭秘双十一_哔哩哔哩_bilibili
Kafka:Kafka深入浅出,快速玩转分布式发布订阅消息系统_哔哩哔哩_bilibili
Mycat:Kafka深入浅出,快速玩转分布式发布订阅消息系统_哔哩哔哩_bilibili
Redis:Redis入门到精通,Java企业级解决方案必看_哔哩哔哩_bilibili
MongoDB:java必备基础教程-MongoDB基础入门到高级进阶_哔哩哔哩_bilibili
Apollo分布式:轻松入门Apollo分布式配置中心-服务中间件【java基础进阶教程】_哔哩哔哩_bilibili
服务器技术
Tomcat:Java进阶教程Tomcat核心原理解析_哔哩哔哩_bilibili
容器技术
Docker:Docker容器化技术,从零学会Docker教程_哔哩哔哩_bilibili
Kubernetes:Kubernetes(K8S)超快速入门教程_哔哩哔哩_bilibili
业务解决方案
elastic stack:elastic stack从入门到实践【快速掌握先进的搜索、数据收集、分析技术java进阶教程】_哔哩哔哩_bilibili
lucene:Lucene全文检索技术,从底层到实战应用Lucene全套教程_哔哩哔哩_bilibili
quartz:java教程之精品详解Quartz,企业中必会的技能【黑马程序员】_哔哩哔哩_bilibili
elastic-job:Elastic-Job分布式任务调度深入浅出_哔哩哔哩_bilibili
spring security:java基础进阶-企业开发首选的安全框架Spring Security深入浅出_哔哩哔哩_bilibili
activiti:Activiti工作流视频教程day01_哔哩哔哩_bilibili
百度地图:java基础教程全面讲解百度地图的原理与案例应用_哔哩哔哩_bilibili
一些专题类的知识点
shell编程:java高级程序员必备技能Shell编程_哔哩哔哩_bilibili
TreeMap:java教程进阶-TreeMap数据结构及源码解析_哔哩哔哩_bilibili
强转溢出&浮点数运算:匠心之作java基础强化之强转溢出&浮点数运算精讲_哔哩哔哩_bilibili
线程池:2020年JavaSE基础强化,全面深入学习线程池_哔哩哔哩_bilibili
日志框架:java日志框架教程,全面深入学习多种java日志框架_哔哩哔哩_bilibili
泛型:JavaSE强化教程泛型,由点到面的讲解了整个泛型体系。_哔哩哔哩_bilibili
类加载器:系统学习让你轻松定义java类加载器_哔哩哔哩_bilibili
编码与解码:java基础教程-详讲编码与解码,灵活解决乱码难题_哔哩哔哩_bilibili
StringTable:2020年java基础强化教程之深入java学习StringTable_哔哩哔哩_bilibili
Threadlocal:Java基础教程由浅入深全面解析threadlocal_哔哩哔哩_bilibili
LinkedList数据链表:Java基础教程-详细分析LinkedList数据链表的实现原理_哔哩哔哩_bilibili
ArrayList:java进阶教程丨全面深入解析ArrayList原理(源码分析+面试讲解)_哔哩哔哩_bilibili
Synchronized:Java面试热点问题,synchronized原理剖析与优化_哔哩哔哩_bilibili
并发编程volatile:Java面试热门内容精讲之——并发编程volatile_哔哩哔哩_bilibili
HashMap合集:深入解读阿里等一线大厂java面试必考HashMap技术点_哔哩哔哩_bilibili

如果觉得比较比较全可以收藏看,说不定啥时候就失效了链接

分享一句话给大家,IT界流传的:"talk is easy,show me the code"。自学Java,就是学会写代码,多多练习是非常非常重要的。之后的锦上添花是懂原理,但深入理解原理是一个任重而道远的过程。望周知

有哪些编程后找错误的心得?相关推荐

  1. 知乎高赞:985计算机视觉毕业后找不到工作怎么办?怒刷leetcode,还是另寻他路?

    [导读]985研究生,学计算机视觉,出来后找不到工作?新智元带你看看这个70万浏览量问题下的答案干货:找工作难,是因为前两年AI领域泡沫太大.然而,真正的人才什么时候都紧缺,搞扎实自己的基本功比什么都 ...

  2. cvi中c语言只保留两位小数,CVI编程常见问题与错误-2012.9

    CVI编程常见问题或错误 1.CVI编程时,在程序中插入函数的方法?如何了解该函数隶属那个函数库? (3) 2.如何查看或者找到一个CVI或IMAQ Vision的函数? (4) 3.实验一不能显示曲 ...

  3. 创业编程七个错误认识

    导读:本文是从< What's Your Start-up's "Bus Count"? 7 Myths of Entrepreneurship and Programmin ...

  4. remoteapp提示找不到远程计算机_知乎高赞:985 计算机视觉毕业后找不到工作怎么办?怒刷 leetcode,还是另寻他路?...

    (给算法爱好者加星标,修炼编程内功) 来源:新智元 [新智元导读]985研究生,学计算机视觉,出来后找不到工作?本文带你看看这个70万浏览量问题下的答案干货:找工作难,是因为前两年AI领域泡沫太大.然 ...

  5. 知乎高赞:985 计算机视觉毕业后找不到工作怎么办?怒刷 leetcode,还是另寻他路?...

    点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 转自:新智元 [导读]:985研究生,学计算机视觉,出来后找不到工作?本文带你看看这个70万浏览量问题下的答案 ...

  6. php104.tmp,ThinkPHP5.0多个文件上传后找不到临时文件的修改方法

    这是修改之前的代码 if(!empty($_FILES)){ if(!empty($_FILES[org_positive])){ $org_positive = request()->file ...

  7. 通过崩溃地址找错误行数之Delphi版

    通过崩溃地址找错误行数之Delphi版 2009-5-11 17:42:35 来源: 转载 作者:网络 访问:360 次 被顶:2 次 字号:[大 中 小] 核心提示:什么是 MAP 文件?简单地讲, ...

  8. 游泳后精疲力尽_精疲力尽的编程后如何重回正轨

    游泳后精疲力尽 by Ryan Yurkanin 瑞安·尤卡宁(Ryan Yurkanin) 精疲力尽的编程后如何重回正轨 (How to get back on track after you've ...

  9. linux查看 mysql 登陆 失败_Linux安装完mysql后提示错误无法登陆mysql怎么办?

    mysql是数据库,用于管理系统的数据,使用非常广泛,Linux系统操作中,在安装完mysql后提示错误,导致用户无法登陆,遇到这种情况该怎么办呢?下面小编就给大家介绍下Linux无法登陆mysql的 ...

最新文章

  1. AutoCAD 2D与3D大师班学习教程 AutoCAD 2D and 3D Masterclass
  2. 解析激光雷达中时序融合的研究现状和发展方向
  3. linux sed 替换、删除文件中的某个字符串
  4. 【PSO运输优化】基于MATLAB的PSO运输优化算法的仿真
  5. 第六章:双指针,BFS,和图论 【完结】
  6. 起一卦,还是那个破事。还是大凶。
  7. Jstatd命令 Java Statistics Monitoring Daemon
  8. 数据共享,回调函数,threading模块,守护线程
  9. jQuery实现一个简单的选项卡效果
  10. MySQL通过SQL语句生成实体类_使用sql生成表对应的CRUD语句和表对应java实体类的实例变量...
  11. php 文件服务器,GitHub - RainmanJin/PSFS: PHP Simple File Server 极简版PHP文件服务器
  12. python wget_python wget下载文件处理的一些问题
  13. 用VBS脚本实现软件定条件开启
  14. 使用SCI-HUB下载论文
  15. 一文带你了解常见的数据指标都有哪些【数据分析】
  16. Js、Jquery对goTop功能的实现
  17. 淘宝联盟官方APi在小程序云函数中的使用教程(附案例)
  18. 多种方式实现字幕滚动效果
  19. 汉诺塔问题的递归求解
  20. Idea Mac OS 80端口被占用

热门文章

  1. js dom操作实现雪花下落
  2. 股票 江恩投资十二法则图解
  3. chrome浏览器安装插件,提示程序包无效,解决方案
  4. CF70E Information Reform
  5. 【ISO15765_UDSOBD诊断】-01-概述
  6. 2022-2028全球与中国机器人离线编程软件市场现状及未来发展趋势
  7. cesium实现正多边形动态扩散墙效果
  8. 电脑通过一加手机USB共享手机的移动网络
  9. 网售处方药开闸, 国家药监局公开征求意见:确保电子处方真实可靠,可有条件放开!
  10. ORB-SLAM2学习笔记——全局BA优化