如何在12周内由零基础成为一名程序员

2024-04-29 00:48

本文主要是介绍如何在12周内由零基础成为一名程序员,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的故事


      在海军陆战队服役超过10年后,我于去年7月份退役了。随后在8月份找到了一份赌场的工作做公关,到今年2月中旬的时候又被辞退了。到5月中旬的时候我在DE协会找到了一份临时的“初级用户体验工程师”工作,而到了8月底我则成了正式的“用户体验工程师”。


     当我丢掉赌场的那份工作时,我就在想公关这行可能真的不适合我。我想做一名程序员。于是我开始节衣缩食学习编程。家人对我的情况非常担心。从2月份到5月份的那段时间,我几乎只要是没睡着就是在学习编程,学习Linux以及计算机科学。我自学Python,自学Django。我学了一些函数式编程和命令式编 程。对Linux命令行有了一个不错的了解。


我没有做的


有人问我:“你如何在11周内学会了Django?”


      事实上,我并没有针对Django本身去学。而是在为了使得用Python编写应用更加容易的情况下学到的。也就是说完全出于偶然。因此我不想被称作一名 “Django开发者”。换句话说,如果我过去是在花大量的时间去专门学Django本身,而不是去学如何使用Django工作,我可能远没有现在的编程能力。


以下是好奇的朋友们给我的一些问题以及我的回答


你是以网络资源开始的还是以书本资源开始的?


我都有用。这包括DjangoprojectStackOverflowMIT关于计算机科学的开放课


你的每天或者是每周时间是怎么安排的?


      有时每天8个小时,有时12个小时,有时16个小时,总之每天都要花很多时间。因为没工作,又是单身父亲,所以会特别有意志特别有激情。这样的一个境况使得我能十倍努力的工作,不玩游戏,不看电视,甚至整天不睡觉,完全沉浸在代码,编程里。


你有指导老师吗?


      是的我有。他是一个非常聪明而且成功的人,几乎在我成为程序员路上的每一个方面都给了我指导。这其中包括很多非常具体的编程知识(比如Python&Django),还有职业建议等。


之前有过什么特别的经历对于你现在自学成为程序员有什么帮助的吗?


      没有很多特殊的经历。我很早之前对电脑有过狂热的爱好,学过一点QBasic&VisualBasic,后来又断断续续的弄过一点Python,但大部分时间都没怎么弄。除此之外没有其他的了。


你怎样选择学习Django的?


这个很简单。因为我想要模仿的一个人就是通过Django取得了很大的成功。


可以分享一下你的学习过程吗?


      我想重申一下我并不是一个自学天才也没有什么很特殊的天分。我只是很努力的学习罢了,因为我穷困潦倒而且没有其他选择。我几乎消耗了所以可以帮助我达到现在这个地步的资源——一个既可以让我赚钱又喜欢的工作。这就是我的学习过程。


想了解一下你具体学习Django的过程,或者给我一些建议或推荐一些学习资源(HTML/CSS,JAVAScript)?


      事实上,我唯一的建议就是动手去做。我真的花了很多时间学习,而且我也享受学习的过程。


     正如我在上面已经说过,我没有刻意去学Django,Ruby on Rails或者Noir。我想帮助我成功的一个重要因素是学习语言以及其背后的工作思想,然后再通过一个网络框架去更好的学习那门语言。因此对网络框架的学习都是我在学习编程语言中偶然所得的。


      我建议想学的朋友去看看 irc.freenode.net,去读读Django文档并不懂就问。我就是这样做的,而且效果也很不错。不过我并不是完全坐着读文档,大部分的时间我都会自己做一些东西以更好的理解背后的工作思想。我个人是一个动手学习者,有些人可能不是,但是动手帮助我获得了成功。而你可以选择更适合你自己的方式。


你是如何向公司展示你自己的技能的?是给他们看你的项目了吗?


      GithubGitHub还是Github。我觉得强调的再多有不过分,做一些东西,放到Github上去,让人们知道你很富有激情也很聪明好学。


      另外还有网络。参加一些行业活动,发微博,写博客,和你周围的圈子进行互动。在我看到我现在这份工作的前一周,我就曾在一个论坛上发布过一个简短的演讲,这也使得有些人注意到了我。


结论


如果要我概括我的整个学习过程的话,我想以下几点值得一说:


1.问问题,有好奇心,富于热情
2.学习一门语言,而不是一个网络开发框架
3.努力学习
4.构建一个网络,参加行业活动,写博客等,告诉人们你是一个值得共事的人
5.(选择性的)将你自己放到一个没有退路的地方,破釜沉舟


      最后我想说的就是我觉得自己非常幸运。我现在还算不上一个很棒的开发者,而且我的职业也才刚刚开始。但是我很高兴通过自己的努力改变了我的生活轨迹。我也希望我的经历可以帮到你们。


后记:有人可能会对文中提到的神秘老师感兴趣,作者Matt并未在文中说明他是如何遇到这位老师的,不过在读者评论下面他给出了回复。Matt是通过经常逛这位前辈的网络论坛认识他的。后来随着逐渐的熟悉便开始寻求他的帮助指导,最后也才有了Matt今天的程序员之路。

原文地址:点击打开链接

这篇关于如何在12周内由零基础成为一名程序员的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944703

相关文章

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

c++基础版

c++基础版 Windows环境搭建第一个C++程序c++程序运行原理注释常亮字面常亮符号常亮 变量数据类型整型实型常量类型确定char类型字符串布尔类型 控制台输入随机数产生枚举定义数组数组便利 指针基础野指针空指针指针运算动态内存分配 结构体结构体默认值结构体数组结构体指针结构体指针数组函数无返回值函数和void类型地址传递函数传递数组 引用函数引用传参返回指针的正确写法函数返回数组

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是

【MRI基础】TR 和 TE 时间概念

重复时间 (TR) 磁共振成像 (MRI) 中的 TR(重复时间,repetition time)是施加于同一切片的连续脉冲序列之间的时间间隔。具体而言,TR 是施加一个 RF(射频)脉冲与施加下一个 RF 脉冲之间的持续时间。TR 以毫秒 (ms) 为单位,主要控制后续脉冲之前的纵向弛豫程度(T1 弛豫),使其成为显著影响 MRI 中的图像对比度和信号特性的重要参数。 回声时间 (TE)

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(