找回密码
 立即注册

想自学编程怎样下手?

5
回复
188
查看
[复制链接]

3

主题

6

回帖

21

积分

新手上路

Rank: 1

积分
21
来源: 2024-1-26 08:07:07 显示全部楼层 |阅读模式
相关问题:
自学编程需要注意什么? - 程序员
如何系统、科学地自学编程知识? - 学习方法
如何高效自学编程? - 计算机
--
我是二本大三软件工程专业 专业课啥的也不是完全没学 但就是学到理论的东西 现在想系统的学习编程 看网上说 最好先深入学习一门语言,所以最近在看java 是看的网络教程 下图它的一系列安排 我也不知道有没有用 希望前辈们能指点一二







@马国威@徐涵@沈硕@x灰乌鸦x@吴迪@赖君玉@Way One@曹斌@Java姐@java程序猿
第一次提问没搞明白怎么邀请人回答

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

310

主题

42

回帖

980

积分

高级会员

Rank: 4

积分
980
2024-1-26 08:07:54 显示全部楼层
对于所有编程学习者,尤其是想自学编程的同学,在学习的初期最好能想明白下面几个问题:

  • 编程可以自学吗?
  • 学习编程需要什么基础?
  • 我应该学习哪种编程语言?
  • 应该按什么步骤学习编程语言?
  • 学习编程有什么方法吗?


一、编程可以自学吗?

首先给出结论,完全可以,但自学编程的弯路多得数不完,坑多得踩不完,这必定是一条充满挫折的道路。
有哪些坑呢?

  • 好几天都没有成功搭建一个可以正常使用的编程环境,比如 Python、Java
  • 敲了半天的代码,一运行发现提示几十个错误
  • 学了很久,感觉会的很多,但不知道自己的实际水平怎么样
  • ...
正如我们学习英语需要一个交流环境,编程的学习同样需要,特别是自学编程,以下几个网站尤其重要。

  • GitHub
  • Stack Overflow
  • 菜鸟教程
以上三个网站,可以帮助你解决自学过程中 90% 的难题。
更多程序员喜欢访问的网站,可以阅读我之前的一篇回答:
程序员们平时都喜欢逛什么论坛呢?二、学习编程需要什么基础

学习编程不需要什么基础,不需要你的数学、英语有多好,也不需要你精通计算机网络、编译原理等。
这个结论是有现实依据的,很多培训班根本就不会培训这些内容,照样量产出一些基础虽然不牢固但却可以工作的程序员。(这里并不是为了说明培训班这种方式是正确的方式)
甚至我希望自学编程的初学者能一开始蔑视编程。
在战略上藐视编程的目的是为了在心理层面上克服恐惧,有这个心态可以学起来事半功倍。
我亲身经历过这样的改变。
作为一个转行程序员,在转行学习编程的那段日子,没有人告诉我说要去学数据结构,也没有人告诉我说要去刷 LeetCode,都是靠自己一个人摸索,绝大部分的时间都花在具体项目上,误认为自己和那些已经工作的程序员的区别在于有没有做过项目。
这就是科班出身和非科班出身的学生最大的区别,科班出身的学生知道去学什么,知道大学期间安排的每一门课程是干什么的,知道要先去做哪些小项目来循序渐进的编码练习,知道知识点在工作中能起到什么样的具体作用,非科班出身的程序员感觉计算机相关的知识点简直是一团乱麻。
这种情况导致我去找工作参加面试的时候,很多基础面都通过不了,最后侥幸进入一家要求不太高的创业公司,薪资不高,为了进大厂必须完善算法和计算机的知识。
因为未知,所以恐惧,恐惧导致盲目的崇拜,我认为那些科班出身的程序员太牛逼了,居然可以掌握那么多繁杂的计算机知识;那些写源码分析的程序员都是大神;那些写算法题解的程序员都是高手。
恐惧把小的问题放大,比如学到单调栈、双向链表、记忆化的内容,一看到题目要用到这些概念便觉得代码很难写,索性那些内容就不看,所以学了大半年还在原地踏步,还在原来的公司拿着微薄的工资做着 CURD。
几个月后,创业公司不行了,受迫于重新找工作的压力,只好咬着牙再去啃,再去刷题。
而当我开始写题解、做动画的时候,我就发现算法题也就那样,缺的只是时间去不断的重复练习。
单调栈无非就是在栈的概念基础上增加了排序,记忆化也就是增加一个数组用于存储,动态规划在面试和实际工作中用到的只需要掌握百分之五就行。
抱着编程技术也就那样的心态,学习了爬虫以及 Vue。




“自大”的认为爬虫能有多难,基本步骤无非以下几步:

  • 1、找到需要爬取内容的网页URL
  • 2、打开该网页的检查页面
  • 3、在 HTML 代码中找到你要提取的数据
  • 4、写 Python 代码进行网页请求、解析
  • 5、存储数据
下载安装 Pycharm,安装 Scrapy,根据步骤输入 URL 和数据格式,在完全不懂分布式、ip代理、js加密、模拟登陆、MongoDB的前提下,顺利拿到了自己想要的数据。
无论是分布式还是ip代理,爬虫的每个知识点深挖下去都大有文章,我所学习到的爬虫知识只是冰山一角,但这并不妨碍我们可以从战略上去蔑视编程,编程的很多内容没有那么高不可攀,缺的只是时间去学习,时间恰恰是我们可以去支配的。
三、我应该学习哪种编程语言?

可以通过下面这张图做个小测试,看看自己更适合哪种编程语言。
图片来源: Should You Learn Python, C, or Ruby to Be a Top Coder? (Infographic)-MediumWhich Programming Language Should I Learn First?
翻译:麻瓜编程


下面的图对比了最流行的9种编程语言,来帮初学者选择最适合自己的。


















目前国内的大环境下 Java 的就业岗位相对是最多的,如果你没有特别的偏向于其它的编程语言,那么自学编程的第一门语言选择 Java 是一个不错的选择,关于如何学习 Java,可以点击下方链接阅读。
最新整理的 Java 开发学习路线!当然,C++ 也是一个不错的选择。
这才是你需要的 C 语言、C++ 学习路线!四、应该按什么步骤学习编程语言?

各种编程语言的学习路径基本上都这样的。


如果你学习过一段时间的编程看到这里,可能会疑惑:为什么我从头到尾都没有提及计算机专业的那些课程?
计算机专业的课程内容:
1、计算机组成原理
2、计算机操作系统
3、计算机编译原理
4、数据结构与算法
5、计算机网络


原因很简单:先学习怎么用,再学习它的构造显然比反过来的要好得多!
很多计算机专业一开始都是先教 Java、Python、C 等等高级语言,然后在大二才开设数据结构和计算机组成原理等课程,因为在用这些高级语言做出 Demo、小项目的过程中,肯定会遇到各种问题,而这些问题的答案就藏在那些专业课里面。
一方面做出小东西能有成就感更加容易坚持下去学习,另外一方面带着问题去找答案效率更高映像更深刻。
否则一开始让你去学编译原理,估计一年过去了都不知道编程有啥乐趣。
关于还应该学哪些课程才能赶上计算机学院本科生,可以阅读我之前的一篇回答。
还应该学哪些课程才能赶上计算机学院本科生?说个题外话,想进大厂少不了学习算法,我写了三百篇算法题解,在 GitHub 上收获了 63k 的star,关于如何刷题有些话我想对你说。
写了三百篇算法题解,关于如何刷题有些话我想对你说我的不少粉丝拿到腾讯字节快手offer,因为用了这套算法刷题笔记:
BAT大佬写的Leetcode刷题笔记,看完秒杀80%的算法题!推荐我自己搭建的一个不错的算法学习网站,讲解视频短,每个视频都精心规划过,全部都有动画过程,争取五分钟讲清楚。
AlgoMooc-一个专属于程序员的平台,和大家一起刷题五、学习编程有什么方法吗?

不知不觉自己的编程生涯已经有 6 年,变秃了,也变强了。


回想起这些年的编程经历,保守估计自学看视频的时间都有 3000 小时,我的一些经历或许可以带给你一些思考。


学习编程的道路上有太多的弯路,有的弯路很短,走进去就当散步,马上就能出来,增长了一些经验倒是好事;有的弯路是五连发夹弯,资深编程老司机都容易翻车;但还有一些弯路更可怕,它们是隐形的,弄不好你以为走在康庄大路上,实际上是南辕北辙却浑然不知。
学习编程的过程最切忌的就是用学生的思维学习编程,有不少人在这个弯路里面徘徊,浪费了时间与精力。


一、记笔记 Vs 写技术教程

在我们十几年的求学生涯中,关于知识的获取基本上都在执行以下步骤: 学习课本上给的教程案例,练习课后的配套习题,如此反复,直到通过考试。
很多学生思维的人会把这种学习方式映射到编程上:学习基础语法,练习几个小的教学案例,如此反复,直到认为学会编程。


在学习编程的过程中,读书时记笔记的习惯变成了抄代码,变量名、if语句是否换行、函数名完完全全照搬书中案例。
不可否认,在初期抄代码是不错的一个入门方式,每次都可以成功的运行代码极大的增进了学编程的信心,但一直抄很明显不是理智的行为,需要调整为写技术教程
当你自己去写技术教程的时候,你必然会重新回顾一下整个流程,甚至会亲自再操作一遍,很容易发现之前学习过程中的疏漏点,为了弄明白它,你会查阅相关的资料,知识点得到了补充。
其次,由于你写的技术教程是发布于网上,为了让更多人看明白、更多人认可,肯定会尽可能的讲清楚,在讲清楚的过程中,对于所学的知识更加全方位的了解。


补充个我自己觉得不错的学习路线。
这才是你需要的 C 语言、C++ 学习路线!二、害怕未知 Vs 接受未知

学生时代大家总是会如饥似渴的学习,想尽办法把所有难题都弄明白,学生害怕的是未知,害怕一切不确定的问题,不知道问题是哪个范围,一旦问题找不到方向,总是会陷入焦虑的状态。
由于所学内容被限定了范围,所以总能通过书本、同学、老师、互联网找到明确的答案,即使无法弄明白也明确知道这个知识点属于哪个明确的范围,只是由于自己的问题做不出来而已。
但编程不同,很多编程问题无解的,无人知晓怎么去解决。
为了学好编程,我们必须忍受一定的未知。
未知是永远存在的,这是一个客观规律现实,不因人的意志而改变,和客观现实做斗争是无效的行为。


其次,有些未知的事情就是无解,把时间精力投入到无解的事情上属于浪费,有些未知的事情是因为当下的知识贮备不足以解决,需要忍受这一时的未知、咬咬牙坚持学习后面的内容才能得出答案。
三、按部就班 Vs 不断回溯

课本上的内容都按部就班阶梯式上升,如果没有学会前面的 A 内容,后面的 B 内容根本搞不懂。
由于未知的存在,学习编程过程中总是有一些问题会拦住我们,我们需要做的是先记录它,然后搁置在一旁,继续前行,继续学习新知识、练习新技能、接触新领域,不断的积累,不断的成长,以后时不时回溯一番,把它拿出来重新审视,说不定在学到某个新知识、练习某个新技能、接触某个新领域的时刻突然豁然开朗:哦,原来是这么一回事


<hr/>自学编程说起来真的挺难的,我佩服你能一直走下去,自学编程的收获是巨大的,自学能力的提高、解决问题的能力、创造改变世界的憧憬。
我是 @程序员吴师兄 ,持续分享校招经验、CS学习、面试、算法等内容,在计算机、程序员领域相关的问题下,有几个收藏过万的回答,点击下方链接了解更多。
怎么学好数据结构?新手该如何使用 GitHub?刷 LeetCode 对于国内 IT 企业面试帮助大吗?作为计算机专业学生,最应该学习的课程前五位是什么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

54

主题

32

回帖

195

积分

注册会员

Rank: 2

积分
195
2024-1-26 08:08:14 显示全部楼层
碰巧,之前给学弟妹们整理过一套自己大学时期自学编程进大厂的学习方法!
分享出来,帮助编程初学者走出迷茫!


我相信大多数学习编程的同学都有着对大公司的憧憬。技术、声望、薪资、福利,这些都足以成为吸引你进入大厂的理由。
但是,如何进入大厂呢?
对于很多同学来说,通往大厂的道路并不明朗,不知道是否有希望,也不知道怎么努力,感觉遥不可及。尤其是很多同学,因为学历,竟然直接把自己否定了!
其实,我身边有很多成功拿到大厂 offer 的同学,他们并不都是大家想象中的 985 名校硕士、竞赛金牌、开源大佬、编程神童。相反,我看到了很多背景一般却凭实力冲进大厂的同学,而且他们在工作中的表现非常出彩!
通过和这些同学的交流,我发现他们在编程学习和求职方法上有一些共性,再结合自己的真实经历,我总结了一套较通用的编程学习和求职架构。
无论你现在处于编程学习的哪个阶段,又或者只是对编程有兴趣,下面的内容都会对你有一定帮助。让你看到更清晰的未来,并为之而努力。
<hr/>首先,要明确一点,编程学习没有捷径!必须明晰目标、拉长战线、掌握技巧、持续学习、做足准备,才能立于不败之地。
下图是我总结的编程学习架构:


如图,我将编程学习分为 7 个部分。
为什么叫做 “学习架构” 而不是 “学习路线” 呢?
因为在编程学习中,有些事情不是严格按照顺序去做,而是在我们整个学习过程中都要长期坚持的,就像软件系统架构一样。
下面详细解释一下这套编程学习架构的 7 个部分。
1. 初入茅庐,海纳百川

刚开始学习编程时,难免会感到迷茫,如果你初入大学,会发现身边大多数的同学选择加入了学生会、各种社团来丰富校园生活,而不是一门心思去学习。其实这个阶段,并不需要太过关心和考虑以后找工作的问题,要做的事情就是学好大学的一些通识课程,保证成绩不能太差。不要提成绩无用论,除了学校之外,高的绩点也是简历的牌面,如果能取得前几名的好成绩,是绝对的加分项!
对于计算机专业的同学,刚开始并不会接触到很深入的知识,也很少有机会去开发一个完整的作品。基本都是学习 C、C++ 等编程语言,因为涉及和能够学习到的知识相对丰富。但是,想要学好编程,课本上的知识是远远不够的,一定要自学
自学什么呢?
其实刚开始的时候大家并不知道自己擅长什么、真正喜欢什么、以后想做什么、从事哪方面的工作,因此,可以 “海纳百川”,多了解和尝试各种编程语言、技术框架、专业知识等。比如在课堂教的编程语言之外,去自主学习下 Web 网站开发或者 Python。
怎么自主学习呢?看书?
过去几十年,我们的学习几乎一直依赖书本。但是如今,互联网上资源非常丰富,为我们自学编程提供了很大的方便。可以选择看纸质书、电子书,但是一定不要直接去啃那些很复杂的理论书籍,而是选择一些轻松有趣、相对简单、案例丰富的书籍。除了看书之外,可以选择 W3Cschool、实验楼、FreeCodeCamp 等在线学习网站,边学边敲代码练习。还可以去 B 站上搜索一些视频教程,可能要比啃书学习要轻松得多!
https://learn.freecodecamp.one/但是,无论你选择何种方式去学习,一定要边学边练习,不必局限于一些习题或书中的代码片段,可以试着发挥自己的创意,去编写一些简单的网站或者实用的小工具,相信你会收获成就感,逐渐对编程产生兴趣。
这个阶段,除非你有非常明确的学习方向,否则没有必要对某一门技术过于执着,毕竟计算机领域很多技术和知识点是相通的,前期先多学习一些简单易懂的知识,会让编程学习轻松有趣一些。
2. 兴趣使然,纵横交贯

上一个阶段重在培养我们对编程学习的兴趣,当你学习了一些编程知识和编程语言后,你已经对很多零碎的知识产生了印象,后面学习新知识也会比之前更加容易和迅速。
这个阶段是你编程能力开始突飞猛进的时候。由于时间和精力有限,你要做的是从你已经学到的知识库中挑选出相对感兴趣的部分,比如某一门编程语言(比如 Java),或者是某一个领域(比如 NLP)。然后对这部分知识进行相对深层次的学习,可以去读一本经典的书籍,了解这门技术的特性,甚至是阅读相关源码。
现在网上的资源非常多,很多有经验的程序员已经帮我们整理好了学习路线和知识总结,可以帮助大家由浅入深地学习一门编程语言。
以 Java 为例,这是我自己整理的优秀 Java 学习资源:
https://zhuanlan.zhihu.com/p/357101325https://zhuanlan.zhihu.com/p/356905336程序员鱼皮:Java 知识总结大汇总!看完哪个都变大佬!在重点深入学习一门技术的同时,还需要继续保持开放,接触更多的新知识,而不是深陷其中、无法自拔。计算机的很多知识是相互关联的,如果多学习一些不同方面的知识,我们更容易将那些零碎的知识点串联成网,从而开拓思维,得到更大的收益。
但是,算法、数据结构、计算机网络等知识点比较特殊,即使没有兴趣,也要认真地去学习!因为它们可以培养你的思维,提升你的程序设计能力,对于程序员来说太重要了。毕竟大多编程语言都是相通的,语言只是工具,思想才是武器
听起来可能比较抽象,但在实际面试和工作中往往这些零碎的小知识会发挥巨大的作用。比如,面试互联网大公司时,基本每一轮面试都会考察几道算法题目;面试后台开发岗位,也一定会问到计算机网络、操作系统的知识。在工作中,我们也经常会用到一些算法的思想来解决问题,比如滑动窗口、时间轮、布隆过滤器等。
这个阶段,我推荐大家选择主流的技术和框架进行深层次的学习,比如 Java 语言的 SSM 和 SpringBoot 框架。主流的技术教程多、文档多、遇到问题更容易解决,而且通常容易上手,能做出一些个人作品,增加兴趣和成就感。
3. 有的放矢,十年磨剑

如果你已经对某个编程语言或知识领域产生了浓厚的兴趣,或者已经能够得心应手地开发个人作品,那么恭喜你进入到下一个阶段。
本阶段要做的是确定自己的职业方向,做到有的放矢。
为什么没有在一开始就让大家明确目标呢?因为确定目标的时机很重要,过早或过晚都不好。很多人在上大学前可能对某一个职业特别憧憬,整天嚷嚷着自己一定要成为自己想成为的人,但是直到你真正接触这个职业或者其相关的知识一段时间,你可能才意识到自己并不适合。比如我小时候想当律师,整天看 CCTV 12,也啃了几本法律书籍,但是后来自己记性差了,而且发现自己对编程的兴趣更大,因此也放弃了之前的目标。庆幸的是,我不是在大学期间才放弃律师这个职业,没有耽误到我学习编程知识。大学时间短暂,没有太多的时间给我们去迷茫和折返。
既然已经有了喜欢的编程技术和领域,确定职业目标就相对简单了。每个人有不同的选择,建议先从自己的兴趣出发,选择和自己的兴趣和所学技能相匹配的岗位。同时,也要考虑到目前的市场需求,最好看一些数据和调研,不要选择冷门职业。还有一些其他纳入考虑的点,比如薪资、工作时长、地点等等。确定职业后,还可以进一步地去选择公司。建议给自己定一个最高的目标,比如进入互联网大厂,要相信自己,只有饥饿的狼才能吃到美味的饭。
确定好职业目标后,就要根据职业,堆积打磨自己的技术栈。这是一个十年磨剑的过程,重在坚持。
首先要 确认你的目标岗位需要哪些相关的技术,推荐直接到大互联网公司的招聘官网来看对某岗位的技术要求,比如 Java 开发可以看阿里和美团官网、C++ 看腾讯官网、Golang 或 PHP 看字节跳动官网等。
  下图是腾讯后台开发岗位需要掌握的技术栈,可以帮助你明确需要学习的技术:


知道要重点学习哪些技术后,要制定一个明确的计划,将大的目标拆解为依次去学习每项小的技术,可以参考网上的一些学习路线,按照主次对技术知识进行排序,并规定好学习每个技术花费的时间,从而有一个整体预期,少走弯路。而不是杂乱无章地去学习,主次不分。
比如 Java 后台开发岗位一般会要求 Java 基础编程、Java 并发编程、数据库、计算机网络、操作系统、设计模式等,相应的技术栈可以是:Java、MySQL、SSM 框架、Redis、Linux 等等。确定技术栈后,要按照计划,对每一项技术进行全面且系统的学习,推荐阅读一些经典书籍,比如 Java 可以看《 Java 核心技术卷 1 》、《 Java 编程思想 》等。
还有一本 Java 在线学习文档也是强烈推荐:
On Java 8如果要进大公司,编程学习就不能仅仅止步于 “会用”,而是要懂得 “巧用”、“精用”,甚至能够对知识点进行复刻和创造。比如学习 MySQL 要去了解其底层的数据结构和调优策略,学习 Spring 框架时要熟悉其底层的设计模式和依赖注入的原理等。更重要的是,不能纸上谈兵,要有能力去灵活运用学到的知识来开发一个项目,企业需要的是能解决实际问题的人才
学完这些知识后,你就可以踏实地在简历上写 “熟练运用 xxx 技术” 啦!
4. 学以致用,宁静致远

不止针对计算机技术类岗位,互联网公司的很多其他岗位,比如产品、运营、策划,都要求学生有较强的实践能力。但是学校的课本知识多少有些过时和应试教育,大多停留在理论层面,实践创新部分还是要靠学生自我驱动。如果不懂得自学和实践,真到找工作的时候,简历上没有项目经验,空空如也,是极大的劣势。
在学习技术的过程中,一定要边学边练,否则可能当你用心看完一本书后,打开电脑发现自己一行代码都写不出来,再回过头来翻书找代码,就浪费了不少的时间。
刚开始动手写代码时,如果没有什么创意,不知从何开始,可以按照网上的视频教程做一个简单的 Demo(小样),并且将这些 Demo 好好保存。后面学到新的知识后,可以选择自己现有的 Demo 进行改造和包装,比如添加新的功能、优化性能等等,尽量做出完整的作品,并用这些作品去完成课程设计作业、参加作品类竞赛、申报科创项目、申请软件著作权、专利等等。如果某个作品做的非常好,甚至可以考虑将其正式上线,说不定就发家致富了呢?
比如我大学时期就做过很多导航类的网站,积累了很多经验。最近也是独立开发了编程导航,目的是帮助大家发现优质编程学习资源,已经上线 2 个月,日活数千,得到了大家的一致好评!
编程导航积累了作品,你的简历就多了 “项目经历”、“竞赛奖项” 等内容,而这些内容,是面试官非常看重的。
在正式找工作前,建议大家先去找一份和目标岗位相关的实习。曾经看过一份校园招聘数据,数据表明,入职头条的员工中 50% 都曾经在头条实习,而网易员工中有超 70% 的同学都有实习经历。
实习就像正式员工跳槽一样,不是非要一步登天。第一段实习经历没必要有太高的要求,但是最好要和自己的职业目标相契合,能够感受真实的企业环境、学习到很多的工作经验、在团队中实践自己的技术知识。不用担心自己水平不够,无法通过面试。其实在参加面试的过程中,能够更快、更针对性地发现自己的不足,并且在面试后进行复盘和总结,能够得到更快速的成长。
怎么去找第一份实习呢?其实现在有很多帮助大学生找实习的正规平台,比如牛客网、实习僧 APP、找学长学姐内推、或者直接在企业招聘官网投递简历等。
牛客网-找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网实习_校园招聘_大学生求职招聘网站 | 实习僧宁静致远 是我个人很喜欢的一种境界,大家在找实习或者正式求职时难免会受到外界环境的影响。比如小李拿到了世界 500 强的 offer、年薪百万,或者小王成天抱怨找工作难、竞争激烈。然而这些夸耀或负面情绪和我们又有什么关系呢?就像考场里做卷子,提前交卷的一定考得最好么?谁知道最后你的分数会不会比他高呢?
我们应该关联上下文去看待各种人事、情况和情绪,确实有很多拿到好的 offer 的同学,他们也许比你聪明,也许比你有背景,但更多的是他们曾经付出了更多的努力,舍弃了很多休闲娱乐的时间。找工作难、无法通过面试、产生负面情绪也一定是有原因导致的,企业中的面试官不会都戴有色眼镜看人,可能还是我们没有足够多的付出或者有一些失误,又或者其他人比我们更努力、更幸运。我们要做的是和优秀的同学多交流,发现他们身上的闪光点,分析他们成功的原因,向他们学习经验和方法。多和优秀的人交流,自己也会变得优秀。同时,我们要吸取每一次失败的经验教训,记录下来,多多自省。然后更重要的是,保持宁静,按照自己的规划,一步一步往前走就好。  


5. 锋芒毕露,放手一搏

如果你已经按照上述的阶段努力过,不仅有了一定的技术知识储备、还有项目经验,或者是一段实习经历,那么恭喜,你已经具备了一定硬实力!下面你要做的就是利用一些软技巧,在求职时,将你的优势与亮点锋芒毕露。
首先,整理一份完美的简历。简历是一个人求职的门面,即使你的口头表达能力有多优秀,见不到面试官也就毫无用处,因此要尽可能地在简历上展示自己。
编程技术类的求职简历通常包括几个部分:

  • 个人简介:包括基本信息、照片、学校、成绩等。
  • 个人技能:列举你熟悉的技术知识,也就是你的技术栈。
  • 竞赛奖项:列举你曾经参加的竞赛和获得的奖项。
  • 项目经历:列举你做过的项目,比如课程设计、学习作品、竞赛作品、实习项目等。
  • 科研学术:列举你的学术研究和科研成果。
  • 实习经历:介绍你的实习情况,在哪实习、做过什么、带来什么成果。
其实,编写简历是有很多技巧的,下面列举一些常用技巧:

  • 简历必须一页,排版整洁,保持清爽,且色调不宜过暗或过亮,可以使用淡蓝色 。
  • 要分析自己的个人优势,对各板块排序,把亮点放上面 。
  • 简历上的文字内容精炼,用词尽量专业,拒绝口语化,你的简历终究是要给专业的面试官看的,不用担心他看不懂。
  • 项目、实习经历介绍中,可用 STAR 分析(场景、任务、行动、成果)来梳理自己的核心工作,其中,成果最重要,最好列举明确的数据,比如使用 xx 技术将项目的并发量提升了 30%。每个项目的介绍不宜过长,给面试官提问的空间。
  • 利用简历去引导面试官。很多面试官都会从简历中挑选他感兴趣的项目或技术去展开提问,因此必须足够熟悉写到简历中的项目和技术,并提前想好对策。比如项目中用了哪些技术,为什么用,有什么亮点,怎么去优化等。
  • 写完简历后,自己通读几遍并找专业的 HR 来进行点评,还可以多阅读借鉴他人的简历。
  • 针对不同的岗位和岗位描述,准备不同的简历,在部分细节和内容上调整。比如投递产品和运营岗,你的项目和实习介绍就要分别侧重这两种不同的职位。
  • 内容允许适度夸大,但绝对不能欺骗!这个小技巧尤其适用于没有特别多的项目的同学,但也要注意不要被面试官戳破哦。
准备好简历后,要多多练习自我介绍。自我介绍的重点是通过讲述自己的校园经历、学习过程、竞赛、实习、研究等来突出你的学习能力、沟通能力及解决问题的能力。其他的部分,如个人性格,用几个成语带过就好,属于正确的废话。自我介绍快结束时一定要提及自己最擅长的方向、项目或技术,很多面试官都会从自我介绍展开提问。
面试是应聘者和面试官之间的博弈,一场完美的面试是由你来引导面试官,让他对你产生兴趣、产生信赖,而不是被他牵着鼻子走。至于你是第一次来面试还是老油条,从自我介绍就可知一二了。
面试过程中,在不过分夸大的前提下,大胆展示自己吧!很多面试官都喜欢爱思考、善于交流、有发散思维、有执行力的同学。


编程技术岗位的面试通常会要求写算法题,所以一定要每天坚持刷几个小时左右的算法,这里推荐 LeetCode 算法刷题平台,以树、链表、动态规划、栈、队列、深度优先搜索、广度优先搜索等知识为主。
力扣还可以配套一份谷歌大佬的算法刷题笔记,有路线、体系化地学习,举一反三:
编程导航如果是线下面试,面试官可能会给你一张白纸,让你在上面写出算法代码;如果是线上面试,可能会使用一些在线面试平台,要求程序能够正确执行,难度会更大。但是无论何种形式,都不要慌,由于时间有限,一定要理解题意,想清楚在写,字迹公正、缩进得当。即使做不出来,也要试探性地向面试官说出自己的想法,通常面试官会给出友好的提示。
还有一点非常重要!要记得提前关注自己目标公司的招聘时间,多数互联网公司虽说 “金九银十” ,但是很多公司的提前批从 7-8 月份就开始面试和录用了,因此必须提早准备,合理安排日程。建议大家争取下大公司暑期实习的 offer,有机会直接转正,拿到转正 offer 后再去其他公司面试说话都自信了很多。
最后,不要过度自信,也不要盲目悲观。要多投递一些企业,多一个机会、多一个选择总是好的。不要觉得麻烦,毕竟都已经努力那么久了,放手一搏吧!


6. 归纳总结,方法唯上

归纳总结不仅仅是在学习编程或者求职中,是我们一生都要去坚持的好习惯。学到了知识,要总结;完成了项目,要总结;参加了竞赛,要总结;每天的实习工作,要总结。只要是你做过的有意义的事,无论成功或失败,都值得总结。
有的同学会认为总结和写文档一样,没有必要浪费时间。但实际上,总结并不是草草写一下就完事了,而是要针对某件事,从零开始全面复盘,回顾目标、回顾工作、提问自己 5why(为什么要这样做,而不是那样做?等等)、针对优缺点进行分析、思考如何改进完善等。
通过归纳总结,可以减少重复错误、优化工作、发散思维,最终提炼出一套适合自己的学习工作方法论。有了高效系统的方法,也能帮助你在今后的工作中快速适应和晋升。
用什么工具写总结呢?这里推荐 Markdown 语法 + Typora,无需关心排版,高效书写文档!
编程导航写完总结后,必须进行存储,推荐使用云盘,比如腾讯微云、阿里云盘、OneDrive、印象笔记等,方便自己去查阅和回顾。学了知识不总结,或者写了总结不存储,就像是小熊掰棒子,徒做无用功。
此外,总结不止是给自己看的,也同样能帮助到他人。尤其对于公司来说,技术方案和工作总结有着巨大的意义。几乎所有企业,大到公司,小到个人,都会维护自己的知识库,沉淀技术和业务的同时,也方便给新人提供参考和指导。
值得一提的是,很多同学抱怨自己的工作过于重复,无法成长。我觉得工作必然会重复,但重复不代表无法成长,如何从工作中提炼共性、多提出想法来改进现状,才是值得考虑和关注的。
7. 春风化雨,颗粒归仓

如今,我们生活在一个万物互联的时代,各种编程网课、培训资料、项目实战、开放源码、线上直播课等,为我们营造了春风化雨的学习环境,我们应该充分利用这些资源,分类收藏,颗粒归仓。
但有时资源过多,也会对我们造成困扰。因此,我们要有选择地使用资源,看的多了,自然能分辨好坏;要注重信息时效性,比如学习新框架时,尽量不要看出版超过 1 年的书籍。
此外,除了这些静态资源。我们还可以在线上线下,多认识一些优秀的前辈和小伙伴们,和大家一起学习讨论,甚至可以合作参加比赛,开发一些作品。毕竟一个人坚持会很孤单,如果在编程学习的路上,和一些小伙伴一起前行、抱团取暖,到时收获的就不止有编程能力的提升,还有更重要的友谊(甚至是爱情)


总结

其实学习编程和求职的过程就像是做了一次大数据推荐。
起初,你面前有太多的编程知识和技术,眼花缭乱,不禁感到迷茫。然后通过一段时间的学习和摸索,你对编程产生了一定的兴趣,开始挑选几个相对感兴趣的技术去学习,过滤掉了一些不感兴趣的技术。随着你学的知识越来越多,你的喜好也逐渐明朗,你开始为自己确定求职目标,确定了主要学习编程语言和技术方向。而后你需要日复一日坚持学习编程,并通过项目实战、参加竞赛、找实习等方式提升自己的编程实践能力。最后放手一搏,将自己的技术展现给面试官,并成功地通过面试,找到自己心仪的工作。
整个过程中,你的每个行为其实都会影响最后的面试结果,从而决定你的就业去向。究竟面试官能不能从海量人选中锁定你呢?
<hr/>学习编程和求职的道路并不平坦,我们会无数次因为写不出程序而发愁、因为一个小的漏洞而熬夜、因为面试失败而否定自己;但是同样会因为程序的成功执行而欣喜、因为漏洞的修复而欢呼、因为通过面试而自豪。
无论如何,坚持吧,你现在做的每个努力,都有意义!
不知不觉又 7000 字了,灌鸡汤灌得我都饿了,回答不易,有帮助的话,求各位朋友们点赞 + 喜欢 + 收藏支持下啦!❤️ (我看看是哪些帅哥美女赞了我)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

8

主题

28

回帖

52

积分

注册会员

Rank: 2

积分
52
2024-1-26 08:08:30 显示全部楼层
利益相关:7年老码农,iOS工具类app “深度识别” 作者;目前累计下载量已经超过20万。

初学者学编程,有两个标杆:1是你看过多少书,2是你写过多少代码
09年7月份我开始自学的时候,就是老老实实看谭浩强的《C语言程序设计》(这里不讨论这本书好坏,这不是重点),每一章看完后老老实实用TC 2.0在windows做题目。磨的很慢,但是感觉提升很大。很多东西看完一遍,感觉只是“知道”;做完题目,感觉才是真正的“会”了。书是老书,开发环境是老的开发环境,但是代码量是扎扎实实打下了基础。看到中间指针的时候,毫无压力——因为之前的基础已经打牢了。唯一有点难度的就是书后面一章实现链表那里,理解和实现都花了蛮多天。事后统计,看谭C写的代码大概有8000行左右。一个学期我就磨这一本书,但是看完以后,就感觉是真正入门了。心血来潮,自己实现一些小程序(绘图版双人象棋,黑客帝国数字雨)已经游刃有余。考二级的时候也已经是庖丁解牛,毫不费力了。
后面一个的大半年,就是开始自学汇编语言,数据结构和算法,unix api编程(直接装ubuntu练习)了;还有一些边缘性的知识,比如计算机网络等等。零零碎碎的小项目加起来一共是2万行左右的代码。基本都是C代码。2010年10月份去的北京实习,第一份工作就是C/C++的开发岗位。而这离我以小白的身份开始自学,不过一年多一点的时间。

学编程,就一定要去动手写代码。在代码的运行结果中得到巨大的成就感——也只有这种成就感,才能鼓励自己坚持下去。如果只是看书,那结果多半是“看死书,死看书,看书死”。
回复

使用道具 举报

19

主题

32

回帖

62

积分

注册会员

Rank: 2

积分
62
2024-1-26 08:09:01 显示全部楼层
亲,有关技术类课程自学欢迎关注阿里云大学专栏:阿里云大学 - 知乎专栏
面对云计算与大数据技术,不论是初学者还是资深架构师,始终会面临同样的一些问题:现阶段我该学什么?学完后我能做什么?
阿里云大学以“学以致用”为原则,分别从进阶式学习、动手实操、能力测试等环节帮助用户真正的掌握一项技能,真正使用这项技能,并对接到阿里云人才库,推荐到用人单位,形成真正的云生态人才闭环!


同时,阿里云最新认证体系也在阿里云大学上线发布,包括面向云工程师成长的阿里云认证、面向大数据与安全两大热门领域的职业认证,以及侧重轻量级、场景化技能的在线专项认证——Clouder,为用户在云端的专业能力,提供了多维度、多层次的权威证明!


(图2:最新的阿里云认证体系)
下面我们就来对全新的阿里云大学有个全方位的了解:

1,体系化内容、进阶式学习
想做一名合格的云架构师或大数据专家,学习与成长的路线既复杂又漫长,这就需要养成有效梳理技能树、不断完善技术短板的习惯。阿里云大学根据阿里云、阿里巴巴集团,以及合作伙伴技术专家们多年对技术的探索、对用户服务的沉淀,总结出面向不同职业方向的学习路线图,帮助用户循序渐进的掌握相关技能。
2,边学边用,实操体验
在线实验室,是阿里云大学的一大特色。
当用户在看完视频与文档教程后,即便是记忆深刻、理解充分,但对于实践性很强的云资源调配等问题,始终会有一层模糊地带。为了让用户可以体验真实的操作场景,阿里云大学与资深合作伙伴上海驻云携手,推出了多个在线实验,用户可以通过已经配置好的云资源,对照课程,边学边用,真正做到全面掌握!


(图3:丰富的实验课程)
3,专项认证,场景赋能
伴随着阿里云大学的上线发布,Clouder专项技能认证也出现在阿里云认证体系中,什么是Clouder认证?简单来说,这是阿里云大学推出的互联网化、轻量级、场景化的在线认证,属业界的首创。
“我想将我的网站部署到云端”、“我想迁移本地数据库到云”,用户带着一个个场景化的需求准备上云,可面对繁杂的产品,如何选择最佳的解决方案?每一个Clouder认证,通过将视频课程、在线实验以及在线测试的组合,为用户提供快速解决问题的方法,并获得一个完整技能,取得认证。全部过程在线完成,省时省力,将极大满足互联网创业人员、个人开发者、学生、甚至企业工程师的技术空白点与碎片化时间学习需求。
当用户取得了多项Clouder认证,足以证明他在某个领域达到一定的专业级别,将同取得阿里云职业认证的其他用户一起进入到阿里云人才库,在阿里云大学人才市场中获得职位的优先推荐,也将有机会承接阿里云客户与生态伙伴的上云项目。


(图4:Clouder在线认证的特色)
首批推出的两个Clouder认证将面向初级用户的上云需求:

l Clouder云服务器管理运维:掌握如何快速地开通一台云服务器,并通过管理控制台方便地进行服务器的管理、服务器配置的变更和升级、数据的备份,并保证其可以正常运转并按业务需求随时进行配置的变更。
认证课程地址:阿里云大学Clouder认证--云服务器管理运维
l Clouder网站建设:掌握如何将一个本地已经设计好的静态网站发布到Internet公共互联网,通过自己的域名让全世界的网民访问到,并且教会学员如何完成工信部的ICP备案,实现监管合规。
认证课程地址:阿里云大学Clouder认证:网站建设
在向互联网化赋能与认证探索的同时,阿里云大学还会继续秉承“匠心”精神,精细打磨职业认证,丰富种类,认证路径也会更加清晰、更具有针对性,从而可以更好的帮助用户定位职业发展方面的诉求,满足人才市场的需要!
阿里云职业认证将分为ACA(助理工程师)、ACP(认证工程师)、ACE(认证高级工程师)三个种类,将分别证明用户具备不同等级的上云能力。
ACA(助理工程师):取得该系列认证的用户可以获得对阿里云基础产品的管理能力,并具备一定的海量数据处理与分析能力。
ACP(认证工程师):取得该系列认证的用户将可以基于阿里云产品解决企业的基本业务问题,包括云和大数据产品等。
ACE(认证高级工程师):取得该系列认证的用户将可以基于阿里云产品进行架构设计并解决业务发展中的主要问题,是阿里云面向高级云架构师、大数据分析师、大数据高级工程师的最高等级认证。
4,客户培训,量身定制
云,正在向各行各业全面普及,能上云,已逐渐成为每个行业专业人员的基本要求;了解云,也将会是业务人员、决策者必须具备的知识。阿里云行业培训,将深入企事业单位内部,从云的概念普及到具备熟练地运用阿里云产品、技术、服务与解决方案,量身定制所需课程,提升行业用户向云端转化的能力!
5,学生教育,高校普惠
阿里云大学合作计划旨在与高校联合打造国际一流的DT时代人才培养专业,并提供了丰富教学资源库、即插即用的实验室、真实的工业实战案例、海量云生态企业岗位、师资训练营以及阿里云专业认证等诸多服务,从课堂到实验室,从教学到就业,打造产、学、研、用、创的立体式人才价值链。
6,凝聚人才,壮大生态
随着阿里云在国内外市场的高歌猛进,阿里云认证已成为当前最受关注、被业界高度认可的云计算认证,仅在2016年,全国就有万余名用户参加阿里云认证培训。全新的阿里云大学也将逐步构建云生态人才交流板块,将凝聚阿里云认证用户,打造云和大数据的精品人才库,并联合合作伙伴与行业用户,将优质的岗位需求、项目需求与人才库对接起来,将认证用户真正流转起来,让整个云生态下的人才培养体系更加立体、更加健壮!
阿里云大学,一所云上的大学,一所云生态下的黄埔军校!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

13

主题

36

回帖

74

积分

注册会员

Rank: 2

积分
74
2024-1-26 08:09:10 显示全部楼层
谢题主邀请,据我印象,题主应该是看了这个回答之后,
普通二本搞计算机应该准备实习然后工作还是考研? - marton zhang 的回答,邀请的我,对吧?
貌似过了两天了,周末有空,才过来回答,见谅。
这次不留悬念了,直接来回答!
我没太仔细看题主上面贴的技术路线之类的图片,应该是某培训机构的,没参加过培训,也不发表意见。下面着重来回答下怎样自学编程:
1、首先,要搞清楚一点,计算机技术发展这么多年,新技术层出不穷,但是基础的东西是几十年都不变的。
从长远角度来讲,不要把太大的精力放在层出不穷的新技术上,比如HTML5、Hadoop等,这些只需要跟得住就可以了(但是要跟得住,至少也要有七八年对基础技术的研究),但实际上现在90%的程序猿基本都在追新技术,以至于android开发、ios开发这几年火到猪都能飞起来,其实这也很明显能折射出当前国内技术氛围的浮躁。
新技术层出不穷,不断更迭,但C/C++、Unix、数据结构、经典算法、TCP/IP、路由协议、操作系统原理。。。这些成熟的技术,基本是几十年不变的,Unix有40多年了吧,C++有30多年了吧,就连Java都有20多年了!
所以,第一点,要把基础打牢固,尽自己最大的努力,能打多牢打多牢。比如操作系统原理、计算机网络、数据结构与算法,这些也是互联网企业笔试面试的时候喜欢考察的地方。
这一块的学习,建议题主目前以看书、做题为主,当然如果你能自己写个数据库引擎、自己能搞个编译器出来,那最好,只要你有这个能力。
2、然后,鉴于国内浮躁的大环境,对新技术还是要找个点去专攻下,毕竟以后毕业了,很可能要靠这个吃饭。
现在的技术方向有很多,比如J2EE方向、云计算方向、Android开发方向、前端开发方向、机器学习方向(这个题主现在应该接触不到)。。。就当前求职及工作情况来看的话,最好是有一个主攻方向,主攻方向的技术最好积累的深一些,然后其他方向尽量也拓展下。
所以,第二点,这些技术方向,最好做到一处精,两处通,甚至处处通,当然如果你能做到处处精,那最好了,只要你有这个能力,这也是未来技术人员的趋势。
这一块的学习,建议是项目驱动学习,从零开始做项目,不断增加功能,项目中需要用到什么,就学什么,直至最后把整个项目的功能点做的比较完善。
-----------------------------------------------------------分割线总结----------------------------------------------------------------
总结:主要就是这两个大块头,一个是万年不变的技术,打牢根基,一个是不断更新的技术,顺应市场。
----------------------------------------还是那句话,用心写个回答不容易----------------------------------------------
还是那句话,用心写个回答不容易,不要只是默默地看完,默默地收藏,希望多点赞!谢过!
我的答案到此结束,不过也不一定,或许点赞多了 ,我后面还会再补充些。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
商业洽谈 文章投递 寻求报道
客服热线: 400-113-0968
关注微信