谈谈自己学习半年编程的体会
在校大三非科班大学生,从零开始接触编程,一路打怪升级,分享半年过来后的感悟
回顾这半年多,其实一路走来留下的还是一次次AC问题后的回忆......
1、究竟什么才是打开的最好方式?
??
相信当多数人谈及编程的时候,脑力里都会想到黑客飞速敲击的情景,这也是我之前的认知,编程就像是一个魔力者的游戏,跟平常生活完全搭不上边。如果仅仅是如此,编程或许就和我无缘了吧。
大一的时候,学校开了C语言课,本着一种对程序本质的好奇,即使不是科班,也依然想探究写程序究竟是怎样的一种快感。然而好景不长,课堂上那种近似填鸭的教学方式,再加上我对计算机的体系结构毫无所知,甚至连cpu、内存、IO、硬盘这些最基本的计算机组成概念都没有,很快我就失望了,也许跟很多人一样,接触了C,挨到了编程的门,最后却摔门而去,觉得自己不是这块料。
要是事后真的自己多琢磨,也许学习的路径真的不止这一条,这也是我为何要写这篇文章的原因。每个人都有适合自己的学习方式,没有最好的,只有最适合自己的。
谈谈自己最早的接触计算机的经历,早在小学的时候就接触到计算机,记得那时候还是洛克很火的时候,经常家里多给的零花钱就攒起来,放学了就拉着小伙伴偷偷上网,那也是最早的使用计算机的记忆了。大学之后,也是开始正式学习计算机。
最先接触的是office三件套,其实用起来还是比较上手,现在看来,我觉得真正启蒙我的不是大一学C,而是学office? ?。在学office的时候,自己首先接触到的是一些设计的概念,也曾萌生了想从事UI方面的工作,还记得当时把《写给大家看的设计书》认认真真的翻阅了一遍,不过这里重点要提及的是excel,里面的函数的概念真正为我理解编程打下了良好的基础,还有里面的一些自动化的一些操作,更像是一种对实际应用的一种建模,有点脚本的味道,以及要求对特定数据格式输出等等,很多其实在某种程度上就已经为我理解编程注入了灵魂。
这也是之后学习才体会到的,所以在之后学习各种数据格式:xml、json以及各种配置文件上手都很快,但这仅仅只是开始,后续的路将会更加漫长,可能是自己对美学确实有些绝缘,做设计似乎已经和我无缘了??。
大概19-20年在人人喊python的时候,我也在犹豫到底要不要学,因为我觉得或许走数据分析这条路也比较适合自己,为此自己还钻门找了很多资料,准备大干一场,似乎自己的编程终于要开始了,无一例外,这次又失约了??,但也应该是最后一次了......
经过层层筛选后,最后选中了java后端这条路,转眼半年了,一步步走到现在,从java基础语法->用java的gui写贪吃蛇->学习javaweb->前端三剑客html/css/js,再到后面的一些框架和微服务部署,容器化的思想,企业级开发......。其实学完javaweb用已经能写简单的单体应用的网站了,在学习技术的同时,并行穿插也对计算机体系也有了初步的理解,知道了一些计算机组成概念,如何协调工作的思想,对计算机网络的原理,操作系统的体系有了简单的认知。之后再看那四本大部头书:《数据结构》、《计算机组成原理》、《操作系统》、《计算机网络》,就感觉轻松许多,事后证明也却是如此,因为自己之前尝试攻读过,完全是两种感觉。
如果我一来直接抱起专业书就啃,我觉得一定是一头雾水,毕竟自己没那个一看就懂的资质。
学完java之后,再去看c,感觉真的完全不一样了,可能我学习的顺序有点反过来了??,但也是走过来了,再去学c的时候,除了c的指针和分配内存的一些概念可能需要一些内存方面的知识,其他学习起来也并无大碍了,毕竟不同语言之间思想是相通的,而且java算是对c/c++的一种简化,而且这种面向对象的思想编写代码也更加友好。
不同的语言就像不同的工具,都有自己的优缺点,但是如何配合,发挥最大的效益是取决于使用者本身的,而像c这种更像是瑞士军刀,用好了灵活性很强,我想这也是为何大多数学校把c作为首选的原因了。
其实选哪一门语言不那么重要,最重要的是能通过这门语言打开编程的窗,java和网络编程这一块打交道比较多,这也是我的兴趣点之一,当然每个人对编程的态度是不同的,所以出发点都不定相同。但兴趣是最好的老师,如果肯在自己喜欢的某一方面钻研,相信也能如有所获。
这里总结一下吧,谈谈我的理解:
1?? 编程更偏重于应用性,所以很多东西都要动手实践,才能加深理解,无论是刷算法,做开发,玩玩爬虫,都要动手实践,可能一开始并不理解,之前我刷PAT也是这样,有时候根本不理解为什么要这么写,之后结合数据结构算法,多写多感悟之后,直到一天才大彻大悟,很多东西真不是一日之功,特别是编程这种十分抽象的东西。
2?? 入门之后,需要定制自己的主技术栈,我选择的是java后端,在主分支上建立自己的主路线,偶尔可能会有一些细分支,学习一些额外的,比如玩玩爬虫,写写脚本,如果愿意的话还可以学一点机器学习算法,研究大数据等等。这也是我入坑编程的重要原因,因为可以探索的东西太多了,而学校传授的东西是有限的,很多东西都需要我们自己去完成。
3?? 我觉得学习最重要的顺序应该是: 先学习思想,了解前因后果->快速上手,实践中验证理论->更加复杂环境下应用->之后可能就是结合自己的想法,进而再创造了
?? 最难的其实就是就是开头和最后的再创造了,开始融入可能需要很久,很多基础概念的大厦都还未在脑海中形成,往往学起来连不成一块,最后熟练之后,都会沉浸在熟练之中,很难脱身于技术本身了,所以心中无剑
的境界恐怕也只有少数人才能企及。
这是自己的第一篇文章,文笔简陋,只希望给迷惘的人一些方向,如果真正热爱这个领域,认真去默默践行,那么编程就不仅仅是编程本身了,如果它能承载一些自己的初心和梦想,那也是好的。
2、分享一些工具和技巧
1、编辑器:
- typora ->简洁美观的markdown编辑器,可搭配pingo+码云仓库实现自己搭建博客的图片储存
- notepad++
- sublime
2、远程连接
3、开发工具
- vscode->推荐主题美化插件 Ayu
- IDEA
4、代码对比
5、其他
- navicat->数据库连接
- everything->搜索
- 天若文字识别
- ......