# 前端文档 **Repository Path**: WCCRegistered/front-end ## Basic Information - **Project Name**: 前端文档 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2020-12-26 - **Last Updated**: 2023-02-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## [程序员的自我修养&高效学习方法]() 全栈工程师,具有六年研发及团队管理经验,对程序员面临的各种问题深有体会;精通Python、Java、Scala等语言,对Web的基础研发、高并发处理与分布式有非常深入的理解。课程讲解深入浅出,极为擅长培养学生的编程思维。 ## [主题介绍]() > 如何才能持续成长,是每个程序员都绕不开的话题。 > 入行之处,你可能会困惑于如何选择适合自己的编程方向; 编程前期,你可能想不断培养自己的编程思维与能力; 成长期,是否又想了解自己应该具备哪些综合素质? 进阶瓶颈期,又要面临着如何正确选择改变… > 还好,不管我们处于哪个阶段,总有引路人给予我们更多的成长与启发。 > 授人以鱼不如授人以渔,你在提升自己的同时,还可以不断增进自己的编程思维,寻找到属于自己的进阶之路。 ## [亮点]() 1. -程序设计是什么 2. -Java 语言相关基础语法及应用 3. -如何建立基础的程序逻辑 4. 如何学好JAVA ## [正确认识程序设计]() >程序设计,俗称编程,是一个比较专业的概念。初学者,甚至一部分开发人员,都不能很简单的解释这个概念,所以使初学者觉得程序设计是一件很有科技含量,或者是很高深的学科,其实这些都是误解。那么程序设计到底是什么呢? 程序设计,俗称编程,是一个比较专业的概念。初学者,甚至一部分开发人员,都不能很简单的解释这个概念,所以使初学者觉得程序设计是一件很有科技含量,或者是很高深的学科,其实这些都是误解。那么程序设计到底是什么呢?所以学习程序,主要就是三个问题:做什么、怎么做和如何描述,具体如下: **1.做什么** 做什么就是程序需要实现的功能。 **2. 怎么做** 怎么做就是如何实现程序的功能,在编程中,称为逻辑,其实就是实现的步骤。 **3. 如何描述** 就是把怎么做用程序语言的格式描述出来。所以,对于有经验的程序设计人员来说,学习新的程序设计语言的速度会比较快,就是因为第 1和第 2个问题基本解决了,只需要学习第 3个问题即可了。对于“做什么”的问题,可能初学者觉得会比较简单,其实在大型项目开发,例如 ERP,企业都不能很详细的说明需要实现具体的功能,这就需要有专门的人员去发掘具体的功能,这个用程序的术语叫做需求分析。举个例子吧,例如某个人要找个女朋友,如果你大概去问他,他会说,找个中等的就可以了,但是这个还不是具体的需求,你可能需要问一下,要求女朋友的年龄是多少,身高是多少等等具体的问题。所以说,搞清楚“做什么”也不是简单的事情,需要专门的人员从事该工作。 ## [程序员的综合素质与能力]() > 程序设计是一个技术活,所以不是适合所有的人。现在很多人听说程序设计人员待遇如何如何的好,都一窝蜂的来学习程序,其实这个现象很不正常,因为程序不一定适合你。其实对于一个人来说,适合你的才是最好的。就像现在很多小孩子都被家长逼着去学钢琴啊什么,有些小孩根本没有艺术细胞的,所以学习的效果就是差强人意了。其实程序设计最需要基础扎实了,现在的程序设计学习很偏重程序设计语言的学习,或者直白点说,程序设计基本上可以说是在学习程序设计语言。 **程序设计的基础不外乎以下几个方面:** **1**、 **一定的英文阅读能力** > 因为程序设计接触的很多文档都是以英文的形式提供的,一个阅读英文很困难的人,可以学会程序设计,但是不会有很深的造诣。就像一个看不懂字典的人,能学好汉语吗? **2**、 **较强的数学基础** > 计算机最核心的功能就是计算,各种程序逻辑都会被转成一定格式的运算,运算需要什么知识呢,肯定是数学了。就像一个数学很差的人能做好会计吗?在程序设计中,需要深刻理解数学,用数学来解决你遇到的各种实际问题,类似于做数学应用题吧。这个基础学要长期的积累。 **3**、 **较强的逻辑思维能力** > 逻辑思维可能每个程序设计人员都很需要,那么逻辑思维是什么呢?其实就是把一个事情分解成一系列的步骤在有限的时间内做完,这个也是程序设计过程中最灵活的地方。例如你要完成“去罗马”这件事情,那么逻辑有多少种呢?借用一句俗话“条条大道通罗马”来解释这个问题吧,所以程序设计是典型的脑力劳动。可能有些人觉得程序设计就是体力活,这也不错,为什么呢,还是借助一个例子来说明吧,买油翁的故事大家都知道吧,如果你反复做一件相同的事情,可能这个事情对外人来说是脑力劳动,对于不断重复做的人来说,也就只是“唯手熟尔”的体力活罢了。可能很多初学者对于逻辑思维还不是很清楚,那么举一个比较老套的例子吧, **例如实现“把一个大象放到冰箱里”这个事情,逻辑是怎样呢?步骤如下:** a、 打开冰箱 b、 把大象推到冰箱里 c、 关上冰箱的门 **当然这只是一个很简单的逻辑。在实际的程序设计中还需要严谨的逻辑思维,保证程序可以正常运行。那么逻辑严谨又是什么呢?还以上面的例子为例,严谨的逻辑思维应该做如下事情:** a、 冰箱打不开怎么办? b、 大象不进冰箱怎么办? c、 关不上冰箱门怎么办? **就像一个运动员来说,良好的体质是基础,同样,对于程序员来说,良好的基础可能帮助你达到更高的高度。当然基础不可能每个人都具备,但是数学基础和逻辑思维能力是必须的。** # [如何学好JAVA]() > 对于初学者来说,学习 Java 语法是一个长期、艰苦的过程,所以要做好吃苦的准备,而且语法的学习会随着对于语言理解的加深,而体会到更多设计的巧妙。 > 语法格式只是学习程序时最基础的知识,在实际的开发中,需要根据程序的需要,使用恰当的格式去实现程序逻辑,所以语法一定要熟练。 **学习语法主要有三种学习方式:** 1. **在理解的基础上记忆** > 这个是最理想的学习语法的方式,通过这样学习语法会觉得很轻松,而且对于语法的使用也把握的很准确。对于这种方式,需要在学习的初期深刻理解语法的功能,体会语法适用的场合,记忆语法的实现格式。但是在实际的学习中,由于初学者未接触过开发,很多的概念无法深刻理解,所以很多人还无法实现使用该方式来进行学习。 > 2. **在记忆的基础上理解** > 使用这种方式,首先需要记忆住该语法格式,然后在记忆以及后续的练习中逐步体会语法的用途,这也是大部分初学者学习语法的方式。通过这种方式学习语法,也可以在一定的锻炼以后成为合格的程序员。 3. **在未理解的基础上记忆** > 这种方式是学习语法是最笨拙的方式,也是很多很努力学习,但是无法理解语法格式的学生。使用这种方式其实没有真正理解语法的格式,而只是生硬的去进行记忆,很多时候还无法灵活的去运用这些格式,所以学习的效果也打了一定的折扣。 **学习语法时,主要需要学习和理解以下这些内容:** 语法的格式 这个必须进行记忆,熟记以后可以提高写代码的速度。 语法概念 理解相关的语法概念,例如变量、方法、数组等等 语法的用途 语法的适用领域。 大量练习 通过大量的练习深刻体会语法的使用。 >开源团队留下来的都是兴趣广泛的人 >程序员是最容易忽视综合素质的群体,花太多的时间在编码上面 >短期影响每个细小的选择和思维 >当技术达到一定程度的时候,综合素质是瓶颈 >交流能力、管理能力、认知能力、学习能力、任务规划能力等。 以上的能力,很难看一本书或者一个视频短期内解决————是长期性的坚持和影响 盯着技术不放,少学习各种功能雷同的框架————告诉我们,不要横向学习,要学会纵向学习,学了vue其实就可以了,没有过多的时间去学react 多看书,`文学`、`历史`、`小说`、诗词皆可 人的自我意识会帮助你进化————`潜移默化` 有选择的看技术书 带有太强的目的性学习,反而不利于成长 培养一个兴趣:`摄影`、`绘画`、`乐器`、`写作`、`书法` 程序员的抽象能力和逻辑思维能力不错,但观察能力和审美较差 同编程一样,细节很重要————`忽略细节,后果很严重` #### 书单 1. 《代码大全2》 1. 《JavaScript高级编程》 1. 《流畅的Python》 1. 《Java核心技术》(Java编程思想) 1. 《算法图解》 1. 《语言看书,框架看视频》 1. 《黑客与画家》 1. 《念楼学短》 1. 《万历十五年》 1. 《全球通史》 1. 《浮生六记》(文言文版) 1. 《白夜行》、《百年孤独》 1. 《少年得到》 ## [工作必须要主动]() 1. **奴**:非自愿和靠人监督的人 1. **徒**:能力不足,肯自愿学习的人 1. **工**:老老实实,按规矩做事的人 1. **匠**:精通一门技艺和手艺 1. **师**:掌握了规律,又能将其传授给他人的人 1. **家**:有固定的信念,让别人生活的更好的人 1. **圣**:精通事理,通达万物的人 不要玻璃心————正视自己的学历,那都是过去的,现在就是要比985/211的辛苦点罢了,又不是没有机会,把握住机会,一跃冲天 坚韧一些,大部分的批评都是善意的 提问 如何提问? 反应出个人的素养 80%的问题通过调试解决 19%的问题通过搜索解决 剩下1%才去提问 ## [如何选择编程语言?]() >语言学习选择,必定因人而异,因环境而异,可以以思辨的态度看待,但无需过多争议。 1. C[入门启蒙] 2. Delphi(Pascal)[基本没落] 3. C#[语法领先] 4. JavaScript[web前端统治] 5. Java[与C#有相似之处] 6. Lua[插件] 7. PHP[小公司常用] 8. Python[有灵性] 9. 服务端[一动一静]:PHP+Java / Java+Python --建议学习两门语言 10. 前端:JavaScript + 一门服务端语言(Node.js / Python) 11. 国外:PHP、Python、C# --实用性为主 12. 国内:Java… --受大厂影响 13. Java 经典工业型语言,面向对象,虽然笨重但严谨,工作机会多 14. PHP 不是初学者首选语言,大厂选Java机会多,小公司常用php 15. Python 适合做第二语言,覆盖除底层外的所有场景 > “如果你会Python,你一定能找到工作,如果你找不到,这说明你只会Python。”–国内Python机会相对少 【什么时候跳槽?】程序员:当技术成旧、没有用户的公司、没有高要求的公司,建议跳槽,只要是往上提升,多跳跳也无妨。 ‘’毒‘’鸡汤: >“习惯是最可怕的杀猪刀” >“环境可以湮灭一个优秀的人” >“安逸可以磨灭一个人的上进心” >建议: ### 好吧走出舒适区 >如果您认为作者对您有帮助或我的工作很有价值,请考虑捐赠。如果您能帮我[买一杯咖啡,](https://github.com/QingWei-Li/donate)我会很高兴。![心](https://github.githubassets.com/images/icons/emoji/heart.png)