自学成才:通过自学成为软件开发者——之入行成为软件开发者

news2024/9/26 3:22:51

    一些优秀的程序员,可能以前从事的是其他职业,他们大都发现工作中的很多固定化的流程内容,如果可以实现自动化,不仅效率能够得到提高和保证,提高自己的生成力,同时自己也会从中释放出来,有更多的时间去研究其他内容;于是出于工作的需要学会了编程【但这并不意味着在编程方面,自学成才是轻松容易得事情;很多在技能养成方面急功近利的软件开发者都在自学成才的道路上苦苦挣扎,屡受挫折】如果你正在考虑自学,那么你开始这个令人心潮澎湃而又时而令人黯然神伤的旅程前,你应该了解一下自学的优势和劣势。

一、自学编程的优势

    自学编程的大部分优势都基于灵活性;当你想通过自学来掌握编程技能的时候,你就拥有了最大限度的灵活性【我更倾向于认为这是一种“祸兮福之所倚,福兮祸之所伏”的事情】在你可以利用它为你做更多的事情的时候,灵活性是一项伟大的特性,可以让你沿着自己想走的道路锲而不舍。而在因为缺乏系统性让你觉得不知所措,缺乏动力让你觉得身心疲惫没有动力继续前行的时候,情况就不大妙了。 灵活性并不是自学唯一的优点【低廉的成本,以及因此而获得的自学技能】都是选择自学成才这条路的真正好理由。

1、成本低到基本为零

    自学编程可以为你节省大笔金钱(在今天任何人都可以利用互联网上的免费资源来自学编程)但是注意,免费并不总是最好的选择【通常,花一些钱来获得一套更为体系化、正规化的学习资料是物有所值的】如果你囊中羞涩,光凭“低成本”这个理由就足以说服你走上自学成才的程序员之路。

2、学会学习是你能学到的最优价值的技能之一

    “学会学习”这个技能不仅是在计算机编程与开发领域,即使在日常生活中,也是价值连城的(掌握自学技能的人可以令整个世界为他们敞开机会大门,而那些依靠他人才能学习的人却做不到这一点);如果你拥有自学能力,那么在生活中几乎没有什么是你力所不能及的(当然,这并不意味着你必须通过自学编程才能掌握自学这项技能,但自学编程不失为一种开拓这项技能的好方法,因为自学编程是一项艰苦卓绝,苛求努力的活动)。

3、按照自己的节奏学习

    人们之所以诟病传统教育或者编程训练营,主要因素之一就是它们的学习节奏要么追风逐电、一日千里,要么慢慢腾腾、磨磨蹭蹭。如果你认为自己学习进度是快于或者慢于常人的,那么自主安排学习进度对你而言是一个巨大的优势(正是基于这个原因,我几乎总是尝试自己去学习新东西);你可以完全以对自己来说最舒服的速度前进(而这一切的结果,就是你可能会更好的掌握你正在学习的内容;因为开始下一个概念之前,你能够对这一个概念做到融合贯通)。

4、按照自己的时间表学习

    无论你是决定去大学深造,还是去编程训练营精进,你每天的日程都是被别人固定好的,甚至你的生活都是被别人安排好的。如果你再没有其他的事务,而且你决心专心致志地学习编程或者攻读学位,那么这种固定安排是再好不过了,但是如果你已经有了繁忙的时间表,并且你还不想辞掉自己的全职工作,那么自学编程可能是一个更优的选择;事实上,这可能是你唯一的选择。

5、可以深入研究任何你感兴趣的主题

    如果你发现自己是一个好奇心非常重的人,你对正在学习的东西渴望深入挖掘和细致的理解,那么你可能会对大学的学习生活感到索然无味(可能编程训练营同样也是如此),在那里,往往会强调对教科书的“好读书不求甚解”,而不是真正地深入理解、融合贯通。

二、自学编程的劣势

    如果你对学习编程感到无所适从,并且也没有人来指导你,那么前面所讲到的自主安排时间表、自主设置课程列表的“灵活性”对你而言将是一种戕害。

1、你必须要弄清楚要学什么和该做什么

    【每个人都向往自由,但是鲜有人能够真正驾驭好它】如果你不是一个善于自我激励的人,或者你不善于在没有铺好的道路上奋勇开拓,你应该考虑一下是否通过其他更能获得指导的途经去学习编程。

2、对找工作毫无帮助

    如果你是自学成才的程序员,找到自己的第一份工作难于上青天(没有任何工作经验,没有任何证书或者文凭,要想能证明自己胜任一项工作,这是很有挑战性的)。

3、很容易失去动力

    当新鲜感消失的时候,每件事情都会变得索然无味;因此,从某种意义上说,在完成了一天的艰苦工作之后,还要在晚上7:30自学编程,似乎就没那么有趣了;在这种情况下,你能做到坚如磐石吗【那么,你还不如更好的利用体系化的学习方式来让自己变得更加坚定一些吧】;如果你没有动力,或者你擅长自我激励,那么独立学习是一件很困难的事情

4、脱离社会

    刚开始独自学习的时候,这个问题可能并不至于很槽糕,但宅在自己的房间里,整日面对计算机几个星期之后,你可能就开始发狂了;在你做出最终决定之前,这必定是你需要检验的东西,看看你你能否自如克服。

5、可能会在知识体系上有所欠缺

    当你独自工作、独自解决问题的时候,你会形成一些自己特有的做事方式;这并不一定是坏事,但一旦你找到一份真正的工作,如果你想出的方法与人们普遍接受的方法大相径庭,你不见得愿意去学习和改变自己的做事方式(当然,你可以通过有意识地在你自学编程的过程中增加一些学习内容来改善这一点(比如:学习计算机科学的内容,参加开源项目等;但你一定要意识到,在你无师自通而掌握的知识体系里可能会有一些你还没有意识到的空白)。

三、应对自学劣势的策略

1、制定计划

    凡事预则立,不预则废(如果你不为如何成为一名软件开发者制订一个切实可行的计划,你的失败无可避免)在你自学和为自己制定课程列表的前,一定要做好计划(比如计划:你要学习哪些知识?需要花费多长时间用于自学?你需要采取怎样切实可行的步骤引导你从现在的位置到达彼岸?等内容都要考虑清楚)。

注意:计划是不会完美的,所以你一定要在执行计划的过程中不断修正它【重要的是:时刻要保证有一份你确实花时间经过深思熟虑而成的切实可行计划】。

2、设定时间表

    对任何领域而言,累积效应都是最有力的影响;制定一个时间表,利用它来充分发挥你的优势,每一天、每一周你都会稳步前行(你可以自行决定学习时间的长短、学习频率的高低,但是一定要提前制订好时间表,并且遵照时间表坚持实施,就仿佛你的生活完全依赖它一样)。

3、自学期间不忘拓展人脉

    自学编程的主要缺点之一就是缺乏他人的帮助,缺乏人脉在完成自学之后帮你找到工作【也就是说:你的人脉网络对你而言是至关重要的】你肯定不想看到这样的局面:费尽千辛万苦学完了编程,踌躇满志准备去找工作,突然发现你甚至不知道从哪里下手,你没有人脉可以帮你(你可以:开始写博客,参与社区活动等内容来拓展自己的人脉)。

4、找一位导师

    不需要找类似编程泰斗一样的人物做你的导师,而且你也不需要某人陪你走过你的整个学习历程;但是当你遇到一些问题需要帮助的时候,你应该至少有一位软件开发者可以请教;拥有以为可以依赖的导师,在你感到怅惘或迷茫的时候,可以帮助你走出挫折感的泥潭,节省很多时间;因此,在你开始自学之前,需要确定你迫切需要帮助的时候你可以去找谁,即使你必须要为他们的建议付钱。

5、至少完成一个兼职项目

    反正不管怎么样都是要写代码的,那么干脆你就为一些有用的事情写代码吧,这样会让你一举多得(即使你完成的项目就是一些自认为是“垃圾”的东西,至少你也完成了一些东西,于是在你自学编码的艰苦历程结束的时候,你总归有些成果可以拿出来展示)【如果你不知道自己在做什么,也不要担心,在你实际做项目的过程中你会慢慢理解的】

6、订阅高品质的编程学习网站

    订阅类似《极客时间》这类高品质的编程学习网站,针对每一个有关编程的主题,你都可以找到不计其数的大量内容,每一种都是由各类专家提供的,而且物美价廉;物超所值。这是一种很好的自学方式,而且是体系化的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go使用MongoDB应用指南

Go使用MongoDB应用指南 MongoDB 是一种高性能、开源、文档型的 NoSQL 数据库,广泛应用于 Web 应用、大数据以及云计算领域。Go 语言则以其快速、开发效率高、代码可维护性强著称。本指南将详细介绍如何在 Go 语言中使用 MongoDB 进行数据库操作,包括连接…

鸿蒙HarmonyOS开发知识:命令行工具Command Line Tools

该命令行工具集合了HarmonyOS应用开发所用到的系列工具,包括代码检查codelinter、三方库的包管理ohpm、命令行解析hstack、编译构建hvigorw。 命令行工具获取 请前往下载中心获取并下载命令行工具Command Line Tools。 配置环境变量 Windows 将解压后command-l…

英语四六级有多重要你不知道

卷出天际 IT业内卷严重大家都知道 因此也就打击了很多想入行的新人 到底什么是核心竞争力 放在十年前 稍微会Spring, CRUD 就能达到入门的台阶 那也是培训机构最繁荣的一段时期 而今顶峰已经过去 IT业从含金量上 已经大不如前 在野蛮发展期 如果不太挑的话 大专也是…

云轴科技ZStack AIOS平台智塔亮相FDS金融领袖峰会

人工智能(AI)正以前所未有的速度渗透到金融系统,推动着金融服务的创新和变革。这种深度融合不仅可以提高金融服务的效率和准确性,未来还可催生全新的金融产品和服务模式。尤其是生成式人工智能(GenAI)的出现…

算法的学习笔记—复杂链表的复制(牛客JZ35)

😀前言 在许多实际应用中,我们会遇到复杂链表的复制问题。复杂链表不同于一般的单链表,不仅每个节点有指向下一个节点的指针,还有一个特殊的指针 random,可以指向链表中的任意节点或 null。如何高效地复制这样一个复杂…

CACTER直播预告:聚焦EDLP邮件数据防泄露实战重点

在信息高速流通的今天,邮件作为商务沟通的桥梁,不仅承载着日常沟通,更是企业机密和知识产权的重要载体。然而,邮件系统的开放性也使其成为网络攻击的主要目标。数据泄露不仅会导致商业损失,还可能对企业声誉造成不可逆…

【请安全下载】黑神话:悟空 单机游戏 它是如何保证安全的 怎样防破解的?安全措施:D加密,反外挂,代码加密,资源保护

单机 《黑神话:悟空》是一款单机游戏,由游戏科学开发,并于2024年8月20日全球同步上线。游戏以其独特的暗黑国风、深度的故事背景以及精致的游戏画面,重塑了西游题材,为玩家呈现了一个前所未有的悟空传奇。 黑神话&…

[Linux]在Ubuntu中安装samba并且正确配置(详细)

一、我们为什么需要samba服务 samba是一种实现windows和linux包括macos文件共享的套件。它能让我们像访问自己的磁盘一样去访问别的系统的文件。可以看得出来这种一种快速并且高效的文件传输协议。看到这里,大家可能会有些疑问。向linux传输文件,我们可以…

常用网络测试工具以及解决tcp协议带来得问题

一、解决粘包问题 1.1、tcp的特点 面向字节流特点,会造成可能数据与数据发送到一块,成为粘包,数据之间不区分 1.2、拆包 因为缓冲区的大小,一次性发送的数据会进行拆分(大小不符合的时候) 就和水一样一…

vue3使用i18n实现国际化

安装vue-i18n npm install vue-i18n创建一个ts文件用于存储各种翻译 globalLang.ts的内容如下: export default {"cn": {},"en": {},"de": {},"es": {},"fr": {},"id": {},"it": {},&quo…

HDMI画面发白

这个问题困扰我很久了,今天在抖音上看到了解决方案! https://v.douyin.com/Ceie2g2s/ 量化范围:有限范围改成全范围。

Tomcat安装部署

简介 Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。 简单来说,Tomcat是一个WEB应用程序的托管平台&…

关于elementui table组件 —— 竖向表格

前端模拟数据方式&#xff1a; html代码&#x1f447;&#xff1a; <template><el-table :data"tableData" style"width: 60%;margin-top:20px" stripe :show-header"false" border :row-style"rowStyle"><el-table…

培训第三十五天(容器的基础命令使用)

1、创建一个容器并同时执行echo命令 # 快速启动一个容器执行特定的一次性命令并查看输出结果&#xff0c;输出结果后容器直接退出[rootdocker ~]# docker run -it --namea0 centos:latest echo "abc"abc[rootdocker ~]# docker psCONTAINER ID IMAGE COMMAND …

FreeRTOS 快速入门(六)之互斥量

目录 一、互斥量1、基本概念2、运作机制3、死锁现象4、递归互斥量 二、优先级反转和优先级继承问题1、优先级反转问题2、优先级继承问题 三、互斥量函数1、互斥量1、创建 2、获取互斥量3、释放互斥量4、删除互斥量 一、互斥量 1、基本概念 互斥量又称互斥信号量&#xff08;本…

Vue.js学习笔记(七)使用sortablejs或el-table-draggable拖拽ElementUI的el-table表格组件

文章目录 前言一、el-table-draggable是什么&#xff1f;二、使用步骤1.安装使用2.sortablejs 总结 前言 记录 el-table-draggable 插件使用方法。 一、el-table-draggable是什么&#xff1f; el-table-draggable的存在就是为了让vue-draggable支持element-ui中的el-table组件…

Lesson 81+82 Roast beef and potatoes

Lesson 8182 Roast beef and potatoes 词汇 bath n. 洗澡&#xff0c;浴缸 搭配&#xff1a;have a bath 泡澡 相关&#xff1a;take a shower 淋浴&#xff0c;冲个澡    shower&#xff1a;花洒&#xff0c;喷头 例句&#xff1a;Bobby总是在傍晚洗澡。    Bobby alw…

基于预训练模型,进行氨基酸序列编码,用于深度学习模型构建

本团队提供生物医学领域专业的AI&#xff08;机器学习、深度学习&#xff09;技术支持服务。如果您有需求&#xff0c;请扫描文末二维码关注我们。 在对氨基酸序列数据进行深度学习模型构建时&#xff0c;首先需要将字符形式的序列数据进行编码操作。最简单的当然是One-hot编码…

【Java】/* 双向链式队列 和 循环队列 - 底层实现 */

一、链式队列 1. 使用双向链表实现队列&#xff0c;可以采用尾入&#xff0c;头出 也可以采用 头入、尾出 (LinkedList采用尾入、头出) 2. 下面代码实现的是尾入、头出&#xff1a; package bageight;/*** Created with IntelliJ IDEA.* Description:* User: tangyuxiu* Date: …

[kaggle竞赛] 毒蘑菇的二元预测

毒蘑菇的二元预测 您提供了很多关于不同二元分类任务的资源和链接&#xff0c;看起来这些都是Kaggle竞赛中的参考资料和高分解决方案。为了帮助您更好地利用这些资源&#xff0c;这里是一些关键点的总结&#xff1a; Playground Season 4 Episode 8 主要关注的竞赛: 使用银行…