[阶段小结]非技术人员的编程学习折腾记

2024-06-07 13:32

本文主要是介绍[阶段小结]非技术人员的编程学习折腾记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  之前很长的岁月里,一直都觉得程序员既可怜又厉害,面对如此枯燥无聊的东西,居然还干起了职业...有些人还进化成了黑客这种生物,真是匪夷所思。直到自己在公司IT同事的指引下(非常谢谢他们!),慢慢开始了解编程,越发觉得沉迷其中太合乎情理了。P.S.其实工作中遇到的很多程序员还是没那么痴迷程序的,可能成了本职工作后,心态上疲劳吧。然而当我把它作为兴趣之后,就真的上瘾了。编程于现在的我,就如同游戏于儿时的我。有时觉得需要戒一下,毕竟自己的生活还有很多方面要顾及到。

  现在是2014年的夏天,我接触程序是从2012年夏天开始的。由于工作和考试的原因每年只能有4个月里面的业余时间能弄一下编程。

  自己目前认真看下来以及做过课后题目的书只有两本。C primer plus和A practical guide to ubuntu linux(基础篇)。工作上涉及到IT知识也不多,当然我有公司数据库用户的使用权限,好歹又稍微好一些。这里你也就看到了,本人的功力是比纸还薄的,编程的道路漫长没有尽头,我知道我将倒在路上,只盼那时离我启程的地方可以远一点,因为我想看到尽可能多的风景。

  我个人学习编程的路线是先因为工作需要自学了SQL各类查询语法和技巧,觉得挺有意思。接下来工作里面数据常出错,我的工作需要和IT打交道,讨论出错的原因,了解到了数据类型等等基本的概念。然后一个好心的IT同事(真要谢谢乔瑞)跟我多聊了聊编程,告诉我其实没那么难,建议我看看C语言,我就真的去了,一篇How to think like a computer scientist C语言版的文章(才两百多页,不好意思说自己看的这叫书)。然后找了个在线编程网,动手操作了一下。好了,上瘾了。

  经过google民意调查后,我买了C primer plus,真的好书,我这里也再推一下它。数据和语法基础知识,底层电脑运作原理,Win系统/Unix系统,简单算法,数据结构之间环环相扣,涉及面广,思路清晰,由浅入深。题目不简单,尽量自己做,但是真的不会了,有答案参考。这本书是值得你放着,时不时拿出来翻阅的,千金难买回头看,别以为看完做完题,就都是你的了。看完做完题是帮助你熟悉,为了以后再捡起来方便。

  整完了这本书之后,我自学过算法,但是失败了。除了简单的sorting还搞得定,接下来的各种算法就很迷茫了,对于算法,我的智力层面还是达不够,越看越枯燥,越看越吃力。我用的算法书是Algorithms in C,但是认真学过,总是会有些收益的。后面我会讲一下我觉得舒服的C语言学习方式,仅代表个人意见。

  学习算法期间的另一条并列线是逛C语言论坛,我那水平你懂的,只有潜深水的份。有事没事run一下大家贴出的程序,自己试编一下大家贴出的题目。我也有自己的showtime,比如独立想出个把道稍有难度的题目的解法,也会贴出来展示下,还会把这些自己想出来的东西保存起来...当然只能自己看看,要是往这儿一贴,怕读者们笑掉大牙。就这样漫无目的的论坛生涯一阵以后,我和Ubuntu邂逅了。

  一开始去接触Ubuntu就是为了C,逛国外论坛的时候,看到里面的前辈建议学习C语言的同学们还是去接触下Linux。那时(包括现在)网上比较流行的免费版就是Ubuntu,有图形界面哦!这对一只菜菜鸟是很重要的,如果只是命令行,则容易让人望而怯步。我用光盘安装到了自己的老电脑里面(本人电脑08年入手用到现在...),各种倒腾Linux shell命令。然后就学会了在Linux下编C的程序,学会了使用和编译简单一些的makefile,接触到了vim, gdb。在win下面的话,一个VC 6.0就够了,没有那么多事儿。所以也有人说学C用Linux是分心的,我觉得也有道理。

  会去看A practical guide to ubuntu Linux是因为在论坛闲逛的时候,了解到Linux/GNU的透明度,以及C语言和Linux/GNU的亲密关系,自己YY出学Linux操作平台的知识一定会回馈到C语言知识。就这样开始去学了,这次没买书,是找的免费下载。学完基础部分说下感想,没有学习完C primer plus 那么爽的感觉。但是我知道是有用的。它确实是侧重practical,也让我进一步了解了这个系统。但是印象深刻度一般,主要也是因为,我对机器语言逻辑研究太浅很多东西肯定看过了也没理解到位。此书总共一千多页,英文原著其实就一本,中文切割成了基础篇和管理篇。接下来关于服务器, TCP/IP 等知识打算放一放。还是想致力于基础,通过利用C语言来了解电脑逻辑,不想学杂了,而且没必要刻意去学那么多程序语言的,除非是工作里面要用。

下面来记录一下,短短的使用期间的两起大型事故...

1. 升级系统的时候,给我亲娘直接拔了电源啊,开机后选完ubuntu后,黑屏。这里简短说下解决方法,如果你的电脑可以在开机时候选择ubuntu高级选项,来到历史各种内核选项,选一个最新的好了,进去以后是只有命令行的,命令行下用升级ubuntu内核命令,一定是升级内核的命令啊,就可以搞定。当中应该还有啥曲折,但不重要,这是大体的维修思路。

2.托practical guide福,去弄xserver的命令搞远程桌面控制...一个电脑盲去整这么高大上的东西干嘛,就如同一个几近文盲的人,硬要让自己去研究文学。P.S.整个网络里面就我一个人在用Linux,也不知道其他的机子...所以又一次杯具了。从xserver里面退出来以后,关机。再打开,进入了传说中的登录界面死循环。症状:输入用户名密码,它还让你输...网上有解决的方法,我也不贴了。等我解决这个问题(过程中中打了很多不懂的命令去终端运行)以后,我再登录到图形界面,我的任务栏,文件夹(因为桌面还在有文件夹)打开后的菜单栏,状态栏,都没啦。我好不容易用ctrl+L 去到/etc/里面搜出gnome-termial(终端),接着又是一通胡来,装了个KDE妄图解决这问题,结果以失败告终。一直到知道 unity reset这回事(unity reset可不是命令,别往终端里打哟...),才根本上解决了这个问题。这件小事也说明了一个道理,不分析问题的原因就把可以搜到的解决方式都用上是及其弱智和危险的一种做法,其实我根本不用装kde的,我只是在解决前一个问题的时候,输入了某种命令使我的nautilus(窗口管理器), panel(gnome任务栏)全部关闭了。至此闹剧结束。为了KDE,硬盘又被耗去了500+M的空间。接下来就是卸载KDE,其实我到现在都不确定有没有卸载干净,喵~。我用的卸载方式是走图形界面的,命令行网上也有,我功力有限,也怕再整出点幺蛾子。最后采用了synaptic+ubuntuTweak+删除隐藏文件.kde 的方法卸载掉了kde. 具体的就不贴了,都是可以搜到的。菜鸟们如果看到了,可以尝试用一下这个思路,先救救急。等以后咱水平上去了再用高端命令行方法吧。当你对所用命令不了解的时候,用命令行会比较有风险。

  前段时间,刚刚开动Fundamentals of Data Structures in C。这里回到前面学习C语言的话题。其实真要说来,同学,如果你也是从C primer plus 走过来的,那么学这本还是合适的。它正好承接上了C primer plus的内容。目前我也才开始看,只能说这个评价主要来源直觉。

  呵呵,都是茶余饭后的扯淡,就到这里了。我又要告别计算机知识一段时间了。



这篇关于[阶段小结]非技术人员的编程学习折腾记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Spring Boot读取配置文件的五种方式小结

《SpringBoot读取配置文件的五种方式小结》SpringBoot提供了灵活多样的方式来读取配置文件,这篇文章为大家介绍了5种常见的读取方式,文中的示例代码简洁易懂,大家可以根据自己的需要进... 目录1. 配置文件位置与加载顺序2. 读取配置文件的方式汇总方式一:使用 @Value 注解读取配置方式二

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Java中Scanner的用法示例小结

《Java中Scanner的用法示例小结》有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对JavaScanner用法相关知识感兴趣的朋友一起看看吧... 目录前言一 输出二 输入Scanner的使用多组输入三 综合练习:猜数字游戏猜数字前言有时候我们在

SQL BETWEEN 的常见用法小结

《SQLBETWEEN的常见用法小结》BETWEEN操作符是SQL中非常有用的工具,它允许你快速选取某个范围内的值,本文给大家介绍SQLBETWEEN的常见用法,感兴趣的朋友一起看看吧... 在SQL中,BETWEEN是一个操作符,用于选取介于两个值之间的数据。它包含这两个边界值。BETWEEN操作符常用

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的