计蒜客 - CS 100: 《编程初学入门常识》学习笔记

计蒜客


CS 100: 编程初学入门常识

1. 什么是程序语言

  • 学习编程虽然重点关注的是思想,但也总是绕不开程序语言。
1)什么是编程语言
  • 编程就是人类让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。
2)高级语言分类
  • 高级语言根据用途不同有很多分类,主要可以分成编译型语言和解释型语言。
  • 编译型语言包括 C、C++、Fortran、Pascal、Delphi 等。这里说的编译是指在应用源程序执行之前,就将程序源代码“翻译”成汇编语言,然后进一步根据硬件环境被变成符合运行需要的机器语言的目标文件。应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,几乎是没法修改的。
  • 解释型语言包括 Tcl、Perl、Ruby、VBScript、JavaScript 等。解释型语言的实现中,翻译器并不产生机器语言的目标文件,而是产生易于执行的中间代码,这种中间代码与机器代码是不同的,中间代码的解释是由解释器软件支持的,不能直接使用硬件,解释器软件通常会导致执行效率较低。用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的。与编译程序不同的是,解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码后再执行。
    • 解释程序的优点是当语句出现语法错误时,可以立即引起程序员注意,而程序员在程序开发期间就能进行校正。每条语言只有在执行才被翻译。这种解释型语言每执行一次就翻译一次,因而从某种程度上说效率比较低。一般地来说,如果你听别人说到动态语言,大多都是指解释型语言。
  • 有一些人为了一些特殊的目的制造了一些四不像的混合型语言。比方说 Java。Java 程序也需要编译,但是没有直接编译成为机器语言,而是编译成为字节码,然后在 Java 虚拟机上用解释方式执行字节码。这种运行方式带来了一些优势,但同时直接导致了复杂的环境、不算很高的效率和很多的争议。
3)中文和英文字符
  • 传统上,在英语或者其他拉丁字母语言使用的计算机系统中,每一个字母或者符号都使用一个字节的空间来存储——而对于方块字系统,比如中文、日文或者韩文,因为文字数量太大,通常使用两个字节来储存。
  • 在使用固定宽度文字的地方,比如各种编程工具或者计蒜客的在线代码框,我们输入的字母和英文标点符号都使用一个字节的空间来存储,并占一个空格的宽度。这些占用一个空格宽度的字符被称为半角字符。而汉字或者中文标点则占用大于一个空格的宽度,被称为全角字符。
4)二进制思想
  • 二进制数据也是采用位置计数法,其位权是以 22 为底的幂。
5)程序员的发展方向
  • 算法工程师 小A 专门研究复杂的问题的解决办法,被称为算法大牛。他不喜欢做网站和 App,只想做有难度、有挑战的工作,是程序员中的高薪群体。读论文、设计算法是他的日常工作。通常交给小A 的模块需要他独立开发。
    • 想成为和他一样的算法工程师?建议首先学习并掌握一门基础语言,然后重点学习数据结构、算法和机器学习等课程,并时常通过挑战难题来提高自己的算法水平。
  • 开发工程师 小B 喜欢写代码,不喜欢动脑子,遇到复杂问题喜欢用别人写好的程序解决,可以自己实现一些有趣的工具、网站或 App,多数自视很牛。创业团队比大公司对这类工程师的需求更大。薪水一般,提升空间小。像小B 这种协作能力好的开发工程师非常难得。
    • 想成为和他一样的开发工程师?建议首先学习并掌握一门基础语言,之后学习数据结构课程,再混迹于开源社区。要注意修行、修心,多和大家一起做项目。
  • 产品经理 小C 不喜欢写代码,更喜欢胡思乱想;自称程序员出身,实际只知道大概,更多的时候是在出谋划策。小C 其实已经算转行了,他通常被称作产品经理和项目经理。像小C 这样有点技术背景的产品经理在工作时往往如鱼得水,毕竟在遇到团队中的程序员以各种理由偷懒的时候,可以轻松地看破他们的诡计。产品经理的薪资一般比较低,通过极高的情商一步步走到了高管位置的则另当别论。
    • 想成为和他一样的产品经理?建议蜻蜓点水般地广泛涉猎各种技术,无需深入,将更多的精力投入到与人交流和关注业界动态当中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

撼沧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值