lqxxql 发表于 2023-10-4 18:27:16

小白如何上手编程?

小白如何上手编程?

jshrjx 发表于 2023-10-4 18:27:55

想入门编程,首先要 培养兴趣!培养兴趣!培养兴趣!
强烈建议初学者先选择一门相对简单、容易培养兴趣的编程语言,比如前端或 Python(学校通常先教 C 语言,但未必适合所有同学)。如今,网上资源非常丰富,为我们自学编程提供了很大的方便,可以使用 在线实战学习编程的网站,跟着教程边学边敲代码练习,非常地快乐和轻松,相对于其他资源而言,最能帮助你产生对编程的兴趣!
首推这个网站:freeCodecamp 中文社区
freeCodeCamp(免费代码营)是一个适合初学者的在线编程学习网站,以实践闯关为主,包含了成千上万个编程关卡来帮助提升大家的编程技能,关卡、项目、证书、服务器这些都是 100% 免费的!

http://picx.zhimg.com/v2-2caacc055bdc7d283a07d2b1e0871412_r.jpg?source=1940ef5c
网站包含丰富的课程,以前端为主,还包括了程序员必备的算法和数据结构、数据可视化、后端微服务、信息安全、面试攻略等。每个章节也都有预计完成时间,便于大家控制学习进度。
很多小节的课程都提供了在线代码编辑器,无需在本地搭建环境,直接上手敲代码,非常方便!根据指引输入代码,运行出正确的代码即可进入下一关,能为你带来成就感,从而激活你对编程的兴趣!

http://pic1.zhimg.com/v2-e0050654001bf9514fa103911951dfa4_r.jpg?source=1940ef5c
除了这个,我还整理的一些非常好的在线实战学编程网站,适于各种编程语言和软件开发技术的入门!
一些实战学编程的网站

前端:
freeCodecamp 中文社区Java:
CodeGym 是一个学习 Java 语言编程的在线课程Python:
狐狸教程 互动学习IT技术Go:
Go 语言之旅PHP:
PHP 教程 | 菜鸟教程C#:
C# 教程 | 菜鸟教程算法应用:
Codewars: Achieve mastery through challenge综合实战:
https://www.educoder.net/pathsSQL:
自学SQL网(教程 视频 练习全套)Git:
Learn Git Branching云服务:
实验室列表 - 开发者实验室 - 腾讯云开发者云体验实验室信息安全:
在线靶场_墨者学院资源太多了,先列举这些,更多的可以在我开发的编程导航网站自行搜索~
编程导航除了在线练习编程外,初学编程时,也可以选择看纸质书、电子书,但是一定不要直接去啃那些较复杂的经典理论书籍,而是应选择一些轻松有趣、相对简单、案例丰富的书籍。除了看书之外,还可以去网上搜索一些视频教程(比如 B 站大学),可能要比啃书学习要轻松得多!
<hr/>回答到这里就够了,想上手编程,就先试试上面的练习网站吧,有了兴趣,才能坚持学下去!
其他回答大部分都是经验学和方法论,那老长,初学者看了也未必心里有数。话说,我也整理过一套适合初学者从入门到进大厂的学习方法和经验,大家可以看看自己学到哪个阶段了,下一步应该做些什么。
想自学编程怎样下手?但对于零基础小白,这些经验方法可以收藏起来,当做睡前读物。
现在,打开 练习网站 干就完了,just do it!

http://picx.zhimg.com/v2-f6f721819c2f917d45bfed02fb08c02e_r.jpg?source=1940ef5c

dqm5384 发表于 2023-10-4 18:28:42

零基础的小白想要入门的话,如果是自学还是需要十足的耐心和毅力才是,不然容易中途翻车。
关于java的书籍,这里推荐一些:

[*]从基础开始——疯狂java、java从从门到精通、java编程思想、Head First Java
[*]数据结构和算法——Java数据结构和算法
[*]springboot——springboot实战
==
自学java的话,科学成体系的、分阶段/逐项进阶的视频课程编排,更适合初学由浅入深的学习需求,且利于学习者在学习过程中高效消化吸收,进而提早实现技能融会贯通、早日上手项目实训。

http://picx.zhimg.com/v2-776ad4a6dbf82350198d076bd517e0c5_r.jpg?source=1940ef5c
这里推荐你可以了解下“汇学联盟”在线学习平台(https://www.hzdlstudy.com),内含java、软测、python和前端等课程,且各期课程均有保持一定的持续上新的节奏,除理论基础、技能进阶等必学课之外,还有结合互联网一线的项目实践和最新技术应用,让学员在学习过程中打破时间地域局限,跟众多IT人一起进阶提升:

http://picx.zhimg.com/v2-40bbc15f153c1f085a429d6be2031da3_r.jpg?source=1940ef5c

http://pic1.zhimg.com/v2-05d4b2d7f5754ec007ba8b3a5be6eea2_r.jpg?source=1940ef5c

http://picx.zhimg.com/v2-4ea70bb2647e40b55bd03467990f705d_r.jpg?source=1940ef5c

http://pic1.zhimg.com/v2-45f28240bb68404c3caf57dd583242ce_r.jpg?source=1940ef5c
Tips:
【科目】分小白入门、初级、中级、高级四个阶段;
【视频】分直播课、录屏课、专栏、套餐;
IT学员完全可以根据自身的java基础和学习目的来DIY视频学习内容,也算是比较自由的哈。
当然,这里还要考虑一点:题主学java的目的?

如果是为了转行从事IT行业,那么就需要提前好好做下规划,比如:你给自己多长时间的学习周期,预计学成之后谋求哪个岗位、哪个薪资区间的工作???
途径的话,也无非自学和培训两种;
自学的话,需要成体系的进行阶段性地逐项攻克(尤其是没有计算机基础的萌新),所以推荐自学渠道尽量关注那些连载式、有权威师资背书、且平台用户标签精准的渠道(含免费和付费两种);
相较自学而言,选择培训算是用一定的资金(时间成本)换取高效结业、就业资格了,属于性价比较高的一种(也可以理解为先上车再深造);一般培训机构都会与众多IT企业达成人才输送合作,对于学成之后的保就业承诺也是一种保障。
啰嗦一句:
目前市面上的IT培训机构还是很多的,可以多维度了解对比之后再做决定;
毕竟各家学费不同、承诺不同、学习计划也有差异,对于学员学前、学中、学后的教学保障也大相径庭,做决定前稍微多花点时间在各渠道对比了解、甚至实地走访考察一番,也都是值得的。

http://pic1.zhimg.com/v2-5ebb029dfe41b958a9bf2d41843840c0_r.jpg?source=1940ef5c

自学or培训对比

最后,我想说的是:

[*]如果自学,至少要有一位具有丰富的软件测试项目经验的朋友来带,引导合理合适的自学;
[*]如果培训,那么最重要的因素是:找到合适的培训机构,这两点往往是转行成功与失败的关键点。
祝好。

<hr/>我是汇智妹,一枚软件测试工程师萌妹纸,每天除分享IT技术干货之外,也会聊聊IT圈热议的那些事儿;
公号【汇智动力学院】——职场技能提升、助你加薪升职,有对IT行业感兴趣的小伙伴记得关注/私信我吧~比心❤

gurucn 发表于 2023-10-4 18:28:58

我觉得这个可以类比我们学习一门外语。最好的学习方法应该是先不要去管什么语言的语法,严谨的时态之类的,先能用最简单的对话和别人交流。等到交流没有问题了,然后再开始反推进行深入的语法和时态等的学习。切忌从一开始就往幽深的黑暗深林里面钻,最终不是迷路了出不来,就是一开始就碰壁碰得头破血流,过早放弃!
第一,正确理解语言和程序的用途

http://picx.zhimg.com/v2-7e6f23570c7e5475637dc992d4856872_r.jpg?source=1940ef5c
首先,我们要正确理解语言的作用。语言是用来交流的,比如英语是用来和说英语的人交流的。而计算机语言是用来和机器交流的。
那既然语言是用来交流的,那通过计算机语言按照一定的逻辑编写出来的程序的作用是什么呢?那就是为了让机器能够按照我们希望的方式来执行我们的指令。
理解这一点非常重要,因为这能够让我们明确知道我们学习编程的目标是什么,有了目标,我们才知道我们应该采取什么方法去达成。特别是作为小白的我们,不要连学习这个东西的目标是什么就开始盲目的说想要学编程,最终只能流于口号。
这就好比幼儿园老师问小朋友想做什么,小朋友说想做科学家。问题是小朋友连科学家是什么都不知道,你看下长大后有几个真的成为科学家的?
言归正传,了解了语言和程序的作用之后,我建议这时作为小白的我们应该去尝试下不同的应用程序。这时最好的方法就是去使用不同的命令行工具,去体验这些程序的功能,看它们是如何按照开发者的意愿去执行指令的。
这里我推荐装个Linux或者macOS操作系统,反正你也是小白。对于小白来说,其实macOS比Windows更容易上手。而macOS和Linux都是类*nix系统,命令行上不少工具的使用方法是相通的。
这时你可以去尝试下Linux或者macOS下一些最常用的命令,比如ls,cd,ping,ps,cat,echo之类的。
这里要了解几个东西,一个是为什么这些命令这样命名,以便让你更快的记住这些命令;二是了解这些命令的作用,也就是我们刚才说的程序的作用就是为了让人们更好的和机器沟通,比如ls,是为了让你更好的告诉计算机说我要列出某个目录下的文件。三是为了给你下一步通过自己去调用这些程序进行最简单的脚本编程打基础。
那么熟悉这些命令整个过程大概会耗掉你多长时间呢?我估计约莫3周左右吧,只要你有耐心,应该到时你就能在Linux或者macOS命令行下流畅的执行一些命令来满足自己的需求了!
第二,以最简单的方法去上手编程

http://pic1.zhimg.com/v2-559735a55bf1f82a5cfd2256d78f267b_r.jpg?source=1940ef5c
此时我们已经熟悉了一定数量的命令行工具,也清楚了语言是为了和计算机交流,程序是为了让我们更好的按照我们预设的流程和计算机交流。
那么我们下一步应该做什么呢?学习C/C++/Python/Java之类的编程语言?错了!
对于当前的你来说,学习这些语言还是太过于难,我相信你坚持不了几周,甚至几天,你就会发一遍文章叫做《小白学习编程之从开始到放弃》。
这时我们更应该做的就是通过最简单的方法去体验编程的乐趣,就像学英语应该先学会和人做基本的对话一样。
那么最简单的体验方法,我想应该就是通过脚本语言去将我们之前学到的命令给串起来了!
没错,先是将几个命令通过vim写到一个shell脚本文件上,然后通过chmod一下改下可执行权限,跟着执行下这个shell脚本。
当你看到输出的时候,作为小白,我相信你已经会感到很有成就感,感觉很神奇了。
而在内行人的眼里,你这个是已经是编程入门的一个HelloWorld了。同时你已经获取到编程的一些最基本的知识:

[*]第一,我们是需要代码编辑工具来编写代码的,比如我们这里的vim
[*]第二,代码就是根据符合某个语言规则的方式组合起来的一行行的数字,比如这里我们就是按照脚本语言的规则,一行写一个命令
[*]第三,语言并不是和很多人说的那样需要编译器编译成自己作为小白望而生畏的二进制才能执行的
[*]第四,程序是需要用户有执行权限才能运行的,比如我们这里需要chmod一下。
最重要的,这次的体验让你十分的兴奋,让你觉得可以尝试下不同的方式去组合不同的命令,然后通过管道等方式开始尝试去获取到一个命令的输出,然后保存起来,作为另外行代码的命令的输入。
这时,你应该乘胜追击,开始尝试看一下对应的shell,比如bash的一些基本语言组织规范(术语叫语法),然后尝试下加入一些条件判断,一些循环,甚至尝试下分出一个脚本来专门处理独立的一些命令,然后按下主脚本中怎么调用起来。
当你如此反复的玩弄shell脚本一头半个月之后,其实你已经算是上手脚本编程了!而脚本编程也是编程,所以,你已经算是上手编程了!
别小看这个,很多运维大神和黑客,厉害的点就是可以快速的通过编写shell脚本,用正确的命令去达成自己的需求!
而这个过程需要多久呢?如上面说的,我估计一个月,大不了两个月,基本上作为小白的你就能顺利的通过shell脚本来随意编写你的逻辑了。
第三,通过类比法学习一门可以写自己的APP的解析执行的语言

http://picx.zhimg.com/v2-eaab446adfcc67669a713a5602a42ab3_r.jpg?source=1940ef5c
到了现在,你已经有了shell编程的丰富经验了。但是,毕竟shell还只是做批处理用的,你不能通过它来做出一个强大的应用,比如一个带有GUI的应用。
所以这个时候你应该更进一步,学习一门新的语言。听到这个词,作为一两个月前还是小白的你,是不是觉得很兴奋?是的,你已经熟悉一门语言了,编程老司机了,开始要掌握多门外语了。
这个时候我当然不建议你去开始学习C/C++之类的,因为这里涉及太多计算机原理性的知识,比如内存管理,编译原理,操作系统等相关的知识,虽说你不一定要精通,但是没有相关一些知识点,你确实很难学好C/C++。
况且,坦白说吧,我觉得如果你只是想要写自己的移动app或者桌面应用之类的,其实你很大可能都不需要去学习C/C++这些语言,更别说汇编了。
同时这里我也不建议你去学习C#/JAVA等,毕竟这里牵涉面向对象的一些知识,多态,抽象,继承这些还是有点难,且语法学起来也相对难点,对你当前的基础应该不是很适合。
也不推荐你学习Javascript + HTML5 + CSS3,毕竟这里每一项都可以叫做一门语言,学起来担心你嫌多,打击刚成为脚本编程程序员的你。
那么这里Python应该是个不错的选择。学起来简单,你在开始时也不需要非要用上面向对象的知识才能玩转,事实上,你完全不以面向对象的方式来写python,也一样能正常的做出自己的app。
同时还有一个挺重要的一点是,现在机器学习和人工智能是个大热门,而Python刚好就是这个热门领域的主要开发语言!
而Python应该怎么学呢?别忘记了你刚成为shell脚本程序员。其实语言很多基础知识点都是想通的,python上需要学的概念,你在shell脚本上也很多已经学过了,所以你一类比起来学习,基本上上手就快很多了。比如:

[*]变量。
[*]条件判断。
[*]循环。
[*]函数。
[*]输入/输出。
[*]字符串。
[*]运算符。
如此这般的。当然,我相信你肯定会在学习的过程中碰到一些坑坑洼洼的。但是相信我,你在填坑的过程中,会越发激起你学习的兴趣的。
以你现在的水平,我相信把python的基础知识学完,到能够通过pyqt库写出一个计算器这样的应用,估计在两到三个月左右的时间吧。
你还不少嫌时间长,我说的还只是入门,毕竟你此前还只是有shell编程的经验。
等你接触越来越多了,你到时会发现你去学习一门完全陌生的语言,估计就只是早上看了下基本的语法,下午你就可以开始写代码了。这需要一个积累,骚年!
第四,上手之后的路该怎么走?

http://pic1.zhimg.com/v2-199441153caab2eb8792e6810a3256c1_r.jpg?source=1940ef5c
上面学习了shell脚本之后,我觉得已经算是对编程上手了,等到学了python或者javascript之类的,那么我觉得你就算已经是入门了。
所以这个回答到了这里应该算是了了的。
但是,毕竟你不是计算机科班出身的,你如果想在编程这个行业中走得更深更远的话,肯定还有很长的路要走。
所以这里我作为一名没有名气的老程序员,也就多嘴稍微多说几句。
首先,我们要明白人的精力是有限的,而计算机的知识,坦白说,真的是无限的。你不可能学完计算机所有知识。而其实很多外行的人是不知道这一点的,以为花几年时间下去,就能把计算机所有知识给学完。包括我自己刚上大学之前也是这样认为的,上了几年大学后才发现当时的看法是多么的无知。
庄子曰,吾生也有涯,而知也无涯,以有涯随无涯,殆己!所以我们应该要明确自己的方向,不要什么都想要去学。

http://picx.zhimg.com/v2-84dbae0b3263cce95751808e4e562567_r.jpg?source=1940ef5c
而按照当前互联网领域的情况,方向是非常多的,比如算法工程师,嵌入式开发工程师,iOS软件开发工程师,安卓开发工程师,Windows桌面应用开发工程师,大数据工程师,Javascript全栈开发工程师等。
作为非科班出身的我们,因为我们的底子薄,所以我们一开始的时候尽量不要往自己不知道深浅的方向上去钻。我给出的建议是在前5年时间里,尽量往不需要接触硬件,不需要深厚的算法和数据结构知识,也不需要很好的高等数学、概率论、线性代数等知识的方向上去走,先把自己写代码和计算机相关的基础知识给夯实了。
其实说白了,就是你要把人家本科科班生花4年时间学习的那些基础知识给补回来,比如计算机组成原理、高数、概率论、线性代数、c/c++、数据结构、算法、微机原理、操作系统实现原理、软件工程思想、编译原理等等。试想下人家大学有教授教还要4年,我们靠自己边实践边摸索,估计5年时间还是比较合理的。
等这5年过完了,我想这个时候你编程经验也积累差不都了,相关的计算机知识也有目的性的夯实了。这时,我觉得不需要别人教你,你都知道未来的路应该怎么走了!
没想到一下子写了差不多4千字,挺长的,估计是我在知乎上写的最长的一次回答了。这就真的希望写出来的东西能对后来者有帮助了!
我是<a href="http://www.zhihu.com/people/c9dcefaf373f30df4c60ee3200c49f68" class="internal">@天地会珠海分舵,小程序「三日清单」 和「好学街」独立开发者。能力一般,水平有限,觉得我说的还有那么点道理的不妨点个赞关注下!

lanny98801 发表于 2023-10-4 18:29:37

如果是想课余学点东西或者是兴趣爱好想学学,选择一个编程语言(个人建议C/C++或JAVA语言)再找本入门的书看就完了,只想光问咋也不行,记得要跟着第一章把需要的编程工具安装好,一定要跟着书里面的例题练,不然书看完了还是不会。
要想从事这个工作,学生的话首先要好好学习考一个专业好的大学,然后课余时间有空了再做上面的。在职的话,我也不知道怎么建议,反正好好学习就完了。

eee1573 发表于 2023-10-4 18:30:18

电脑科学领域中,所涉及的知识点很多,它的学科本身就是一个非常庞大的系统。对于没有接触过编程的学生来说,往往找不到学习的方向,或者不知道如何高效系统地学习。网络时代出生的我们很幸福,因为现在网上已经有很多优秀的前辈为后来者打下了良好的基础,通过自己的不断坚持,高度自律,完全可以进入编程世界。
学习本身是有相通性的,编程语言之间的很多知识都是相通的!
坚持不懈和自律是必不可少的精神,学习编程也是如此!
1.明确学习目标,了解学习语言的发展背景。
学习要有目的,盲目学习只能说是浪费精力和时间。
很多新手在选择了编程语言之后,会在网上收集到一堆网课或者书籍资料,一存就是几个GB的百度网盘,反正越多越好,心里就会有一种越踏实的错觉。但你慢慢就会发现,存下这么多视频,根本就没那么多时间全部看完。
还有一些同学自律程度较高,挑出一些系列视频网课,看前几章,然后看着看着,就坚持不下去了,学到的只是视频前奏的知识点,自己动手编程时,还是一脸懵逼,最后放弃了编程。
就像上述观点一样,盲目学习只会浪费自己的精力和时间。
这时需要选择一种编程语言,百度查调查下,很多人推荐Python,它本身语法简洁,适合开发小工具。因此,为了达到这个目的,首先要做的就是了解Python的发展背景。
在学习一门编程语言之前,应该对这些问题进行调查,古语云:知己知彼,才能百战百胜都是一个道理。

http://pic1.zhimg.com/v2-534de3f2cf0488b632bd560317fe9ad7_r.jpg?source=1940ef5c
页: [1]
查看完整版本: 小白如何上手编程?