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

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

相关文章

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

Python中合并列表(list)的六种方法小结

《Python中合并列表(list)的六种方法小结》本文主要介绍了Python中合并列表(list)的六种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、直接用 + 合并列表二、用 extend() js方法三、用 zip() 函数交叉合并四、用

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

CSS 样式表的四种应用方式及css注释的应用小结

《CSS样式表的四种应用方式及css注释的应用小结》:本文主要介绍了CSS样式表的四种应用方式及css注释的应用小结,本文通过实例代码给大家介绍的非常详细,详细内容请阅读本文,希望能对你有所帮助... 一、外部 css(推荐方式)定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示