精华内容
下载资源
问答
  • 面对不严厉的研究生导师,怎么做才能学到东西?修改 在知乎上差不多一直潜水,认真回答过几次问题,这是第次问。马上研究生就要开学了,本人要读本校的研究生,本科成绩一般,没获得保送的机会。 ------先...

    展开全文
  • 但对于部分同学来说,没有众观全局就会误以为刚入门就需要学习庞大的知识,学着学着开始看不懂,由于心理作怪,感觉内容巨多,之后就真的一直看不懂了。 但C语言的基础内容真的多吗?回答是:不多。请看下图,...

    真不难

    C语言难不难?这个问题是相对的,对于找到合适方法学习C语言的同学想必是觉得很简单;但对于一部分同学来说,没有众观全局就会误以为刚入门就需要学习庞大的知识,学着学着开始看不懂,由于心理作怪,感觉内容巨多,之后就真的一直看不懂了。

    但C语言的基础内容真的多吗?回答是:不多。请看下图,C语言可以分为9个块,或者说9个主要知识点;才9个?对的,就是9个。主要是printf输出、变量、scanf输入、数组、逻辑判断、循环、自定义函数、指针以及结构体。

    接下来我将讲解各个知识点的简要概括,助各位学习者一同进步。

    在这里插入图片描述以下将会在讲解知识点的时候有对应知识点的教程链接,点进去就可以看到文章教程,全部免费,无套路~

    先来个教程完整目录

    目录

    第一篇:(一)脱离学习误区
    第二篇:(二)C语言没那么难简单开发带你了解流程
    第三篇:(三)轻轻松松理解第一个C语言程序
    第四篇:(四)语言的基本数据类型及变量
    第五篇:(五)C语言的变量、常量及运算
    第六篇:(六)轻轻松松了解C语言的逻辑运算
    第七篇:(七)C语言的循环分分钟上手
    第八篇:(八)了解基本数组还不是那么简单
    第九篇:(九)C语言二维数组与循环嵌套
    第十篇:(十)C语言的指针原来是这样
    第十一篇:(十一)C语言自定义函数真的很简单
    第十二篇:(十二)原来结构体是这么回事
    第十三篇:(十三)socket服务端编写

    C语言新手的100个报错解法

    推荐

    欢迎大家关注公众号,公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍2份哟~
    在这里插入图片描述

    学习目标

    1.知道C语言真不难

    一、printf

    在学习C语言时,第一个程序一般是HelloWorld;HelloWorld主要是编写一个程序,在程序运行时显示HelloWorld文字;使用的代码就是printf。这是程序的第一步,并没有过多的内容,主要是了解软件的使用,以及尝试第一个程序的编写。

    printf教程参考:(三)轻轻松松理解第一个C语言程序

    二、变量

    在这里插入图片描述

    变量这一块的知识点主要是介绍如何使用变量,并且告诉你变量有很多类型,其实变量就是指可以存储值的容器。这个非常好理解,例如你在生活中使用的杯子,杯子用来装水,或者是一些液体;装水可以当做容器的值是水,容器是杯子。那我也可以用抽屉装书本,书本就是值,抽屉就是容器。

    在编程中也一样,不同的容器对应的是不同掉值;在C语言中,存在几个类型,这些类型规定使用指定的容器去存储;当然也可以不按照常规存储,就像你用一个纸杯装了一个红彤彤的碳一样,高温会把纸杯给融化;除非你是故意要这个效果。

    所以变量就是很简单的一个内容。在变量这一节的内容中,还将会学习变量的输出。这个输出值的是,我们在程序运行时将该容器内装的东西显示出来;就像你用一个桶装了你钓鱼钓到的货,你把这个货给大家一起看了。

    变量还有一个关键的概念,就是可变。什么是可变?可变就是值你容器内的东西倒出来后还可以装新的东西进去;我装水的杯子我喝完了还可以装别的水进去。但是常量就不一样,常量存储了值后,就不可以改变了,就已经外包装封死了;你只能看见里面装什么,给大家看,但是你还想把里面的东西拿出来装别的东西进去是不可能的。

    变量教程参考:
    (四)语言的基本数据类型及变量
    (五)C语言的变量、常量及运算

    三、scanf

    在这里插入图片描述

    scanf的作用主要是接收用户的输入。什么是接收用户的输入呢?接收用户的输入就是值我们运行程序后,例如需要输入一个密码才可以启动程序;这时就需要我输入一个值,程序将等待我进行值的输入;输入完毕后程序接收到这个值,判断是否正确。要完成这个操作,在C语言程序中就需要使用scanf。

    scanf主要有几个知识点,最为主要的知识点则是知道变量的地址。一般情况下,我们输入一个值将需要一个变量进行接收;这句话我们可以理解成,输入一个值,我们需要一个变量对这个值进行存储。但是要完成这个操作需要知道这个变量的地址,得到地址后我们就会将这个值存到这个变量中。每个变量在内存中会有一个地址对应,就像你住的地方一样,有一个标记,给予这个标记给scanf后就可以将值存储到那个变量中。

    由于融入到了其它知识点这一个知识点不在这列出:(一)脱离学习误区

    四、数组

    在这里插入图片描述

    数组主要是理解数组结构是如何存储的。数组是用来存储一堆数值的容器,跟单个的变量所存储的内容不一样,数组可以存储多个。例如我们需要存储同一类数据的多个值就可以使用数组。数组的存储结构跟一个抽屉一样,每个抽屉都装了一个值,例如第1排第1个,第1排第二个,理解了就及其简单。

    二维数组呢其实跟一般的数组一致,就是有了第2排,有了第3排等。所以你既然能够理解抽屉,那么数组一定可以理解。

    其中索引指的就是第几个,第几排的这个几,这个数字指的是一个量词对位置的标记;数组的存取就是指对这些抽屉进行查看,和重新放一些东西进去,就那么简单。

    数组教程参考:
    (八)了解基本数组还不是那么简单
    (九)C语言二维数组与循环嵌套

    五、逻辑判断

    在这里插入图片描述

    逻辑判断其实就是对一些数值进行判断,例如刚刚说的,这个程序每次打开需要输入一个值,判断这个值是否是打开的密码,如果输入错误就退出程序。

    那么进行判断就需要使用if或者switch。if和switch都是同样的作用,懂其一则都懂,只是使用格式的不同而已。例如我们打开程序,输入了1234,密码是123456;输入的值存到了一个容器中,这个容器我们给它一个名字,或者说给了标记,叫做A;那我们只需要判断A是否等于123456就可以了。这就是逻辑判断的作用。

    逻辑判断也可以进行“套娃”,也就是判断是否正确后再进行判断,也可以同时判断多个条件。例如当前的密码知道能够被2除断,没有余数就正确,但是不能等于2;这个时候就需要使用逻辑判断运算符,只要把想判断的内容放到逻辑判断符的左右两边,就可以完成了。

    逻辑判断教程参考:
    (六)轻轻松松了解C语言的逻辑运算

    六、循环

    在这里插入图片描述

    循环是为了重复运行一些代码而设计的。主要使用的逻辑为,给予循环你要循环的次数,给予循环的代码,最后给予一个循环的控制变量;循环的控制变量作用顾名思义,用来控制循环次数;我们设置一个容器,里面装了一个数字0,每次循环就加1;例如最开始这个容器的数字是0,循环1次后我们加个1,这是容器装的值就是1了,每次加1则每次递增;那么这个时候我们给予的次数是10,每次循环只要判断这个循环控制变量是否大于10,就可以控制循环的次数了。

    for循环、while循环以及do…while循环都是一样的用法,通过循环变量控制循环次数。循环是可以嵌套的,例如循环嵌套指的就是一个循环里面有另外一个循环,每次外面的循环循环1次,里面则循环指定的次数。

    当我们需要重复设置我们的数组存储的值,使用循环特别方便。例如你需要在一个大规则的每个抽屉都需要放一个值,使用循环分分钟解决。

    循环教程参考:(七)C语言的循环分分钟上手

    七、自定义函数

    在这里插入图片描述

    自定义函数指的是你可以自己创建一个工具包。例如洗衣机是一个有功能的工具,它是用来洗衣服的,每次使用洗衣机把衣服扔进去就可以自动帮你完成任务。自定义函数也一样,实现一个功能后直接拿过来使用就可以了。

    洗衣机功能是洗衣服,但是必须要有衣服才可以洗,衣服就是参数;洗衣机洗完衣服后给你的是干净的衣服,那么干净的衣服就是返回值;就是整个功能的结果。

    自定义函数参考:(十一)C语言自定义函数真的很简单

    八、指针

    在这里插入图片描述

    指针其实就是一个代理人,你可以通过这个代理人访问一些变量,或者对这些变量进行直接的操作,你就是他们的主人;但是在使用指针的时候你必须知道你要操作的东西的地址,不然从何操作;多重指针呢就是你的全权代理人跟另外一个人搭伙,你可以操作另外一个人的代理。

    那为什么说指针危险呢?那是因为你的代理人保留着上一任主人的数据,你直接让他去操作一些东西,他会把上一任主人保留的数据拿去操作,这样你操作了不属于你的东西,这就被警告了。所以要使用指针时记得把上一任主人的数据给丢掉,并且用完这个指针工具人后让它把所有数据都扔掉。

    指针教程参考:
    (十)C语言的指针原来是这样

    九、结构体

    在这里插入图片描述

    结构体我们可以当做是一种类型的组合。例如你使用变量去存储一个人的名字、年龄,需要新建2个变量;例如你又要存储一个人的名字、年龄就需要再新建2个变量;真太麻烦。这时使用结构体,结构体就像一个大容器,跟数组不一样,结构体可以给自己存的值给个变量存储,数组直接就是个变量,结构体包含着其它的变量。我们新建一个结构体叫做“人”,这个人结构体我们在内部新建2个变量,一个是名字、一个是年龄,这时只需要创建这个结构体,那我们就可以直接拥有2个变量,简单方便。

    结构体教程参考:
    (十二)原来结构体是这么回事

    总结

    了解概念后,学习将不会有太大难度,主要是认识使用的语法规则即可。

    展开全文
  • 工作容易,赚钱很难

    万次阅读 2017-11-07 09:10:54
    工作容易,赚钱很难 李宗盛有首歌的歌词里写到:「工作是容易的,赚钱是困难的」。乍听感觉有点矛盾,工作的个重要结果不就是赚钱么,为什么工作容易赚钱却难?但仔细想就恍然其中想表达的意思了。 ...

                                               工作容易,赚钱很难


    李宗盛有首歌的歌词里写到:「工作是容易的,赚钱是困难的」。乍一听感觉有点矛盾,工作的一个重要结果不就是赚钱么,为什么工作容易赚钱却难?但仔细一想就恍然其中想表达的意思了。


    工作的本质是出售劳动价值,通过工作赚到的钱是对劳动价值的价格度量,也即劳动的市场价格。而劳动的市场价格总是围绕价值上下波动,有可能折价也可能溢价,但总不会偏离价值本身太远。所以歌词里的意思可能是,你随便找份工作来养家糊口可能还算容易,但想赚很多钱这可就困难了。而不同劳动种类的市场价格差异也是巨大的,我想先从一些典型的不同劳动种类群体来谈谈他们的工作与赚钱。


    农民工


    最新的数字显示农民进城务工的人数达到 3 亿(参考[1]),这代表了一个很大的工作群体。而因为家庭和工作的原因我接触过一些这个群体的人,所以了解了他们是如何工作并赚钱的。


    过去的十来年城市房地产业的大发展吸纳了一大部分农民工,他们吃住干活都在工地上,年龄跨度从十多岁到五六十岁。干一天活算一天报酬,所以算是个日薪制的工作吧。而不同的工种之间的每日报酬也不同,一些年老的农民工只能干些简单且没那么重体力的活,所以日薪自然低些,大概在 100 元附近吧。而一些重体力和高风险(如:高空户外)的活就需要年轻人,而日薪也相应更高,可能有两、三百不等。干一天算一天钱,对确实只是算,计算的算。每天并拿不到钱,平时只发点伙食费够吃饭而已,剩下的工资需要年底(春节前夕)一次性结算发放。所以每到年底总有些农民工欠薪讨薪的事件,也正是源于此类行业规则的不合理埋下的隐患。


    农民工付出的劳动价值的本质正是他们的体力和时间,时间是有极限的,无非就是干满一年 365 天,而体力也是会随着年龄增长而下降的。所以农民工里年龄过了一定阶段的老年人日薪就是比年轻人低,而他们的工作内容和性质除了风险溢价外并没有其他太多的技能和经验溢价。确实可能有些工种是有一定技能要求的,但多是可以通过短时间的培训很快熟能生巧的技能,而经验在此类工作内容里也是无处沉淀的,自然也带不来额外的溢价。这正是体力劳动者面临的现实,人只要不懒惰通过出售体力是可以养活自己甚至养活一家人的,但还想要赚更多钱实际就困难重重了。


    像农民工这样的体力劳动者的收入总是没那么稳定的。在房地产行业红火的日子出现的民工荒,自然带来价格的上涨,而近年房地产不那么景气后,农民工连找活做都困难了。也就是在行业不景气时连工作都没那么容易了,农民进城找不到工只能回农村,在农村可以种田但一样还受到自然天气的影响,养点鸡鸭猪鹅也会受瘟疫疾病的影响。而且显然的事实是在农村无论种田还是养家禽都比进城务工赚的钱少的多,要不哪来 3 亿的农民工呢。


    今天房地产不那么景气了,而互联网带来的电商新行业还处于上升期。这也带动了一个旧行业的大变化,那就是快递业。也有不少农民工进入这行,相比建筑工地而言工作待遇和环境都提高了不少。至少工资可以按时地拿到,正规点的快递公司还会按规定买上五险一金,冬夏天还有额外的高低温津贴,而且多劳一般都是多得的。也许处于上升快递行业的农民工们工作还是容易的,只是还要赚更多钱则困难,而处于衰退房地产业的农民工们则工作已是不易,何谈赚钱呢。


    程序员


    虽然程序员们喜欢自嘲为码农或码工,但程序员的工作与农民工相比还是有天壤之别的。很多程序员将自己的工作比作搬砖,暗示重复而无趣。但此搬砖相比农民工的真搬砖其中的本质差别在于,程序员即使搬砖也是积累经验的,而经验是会带来溢价的。


    即便你再觉得程序员的搬砖多么无趣,但我们看看实际国内的程序员也不过在几百万人数(参考[2]),相比真搬砖的农民工数量差了两个量级。这里面的制约是什么呢?在去年万众创新,大众创业,互联网+席卷全行业时,每个公司似乎都已万事俱备,只差一个程序员了。真相是一个合格的程序员的培养周期实际比我们想象得要长得多。不少人通过参加编程培训机构的短期(3到6月不等)培训入行,实际初期能赚到的钱可能还真不如农民工在工地上搬砖的水平。虽然我司办公楼对面就有一个北大青鸟培训,但我对这类培训入行的程序员的市场平均价格还是不太清楚,只是凭感觉觉得可能并不高。


    就好像我有好些同事,十年前他们还算是从重点大学的计算机专业毕业进入程序员这行,当时的程序员薪资也就 1k 左右,而那时我机械的同学去深圳富士康干流水线工人的工作每月还有 1.8k 呢。十年下来,程序员的起薪水平随着行业的快速发展涨了很多,而不同级别、背景和经验的程序员之间的薪酬跨度也足够大,年薪从几万到几百万不等。


    最近五年我都有连续参加校园招聘,感受很明显得是校招一年比一年起薪高,导致五年前进来的学生工作三年后拿到的薪酬反而没有两年前刚招的学生高,出现了薪酬倒挂的现象。这就是由行业的火热发展导致的供需失衡,引发了市场价格涨幅远远超过了公司的年度涨薪机制。现在一线互联网公司(如 BAT 等)还会给一些特别优秀的毕业生发出 Special Offer,年薪通常在 50万+,这个年薪我想甚至很可能超过大部分工作了十年的老程序员。


    为什么不同程序员的价值体现出来的价格差异如此之大?这里除了知识、技能、经验的积累差别之外也就还有行业背景的因素。程序员写程序的能力是很难单独变现的,程序附着在软件之上,而软件附着在具体的行业之上。所以在一线互联网公司十年的程序员和在外包 IT 公司十年的程序员,知识、技能、经验的差距也许没有一倍,但收入上可能就有数倍的差距,额外的部分我理解就是程序附着的行业价值链之间的差距。就像 2000 年 PC 互联网兴起时,一个会写 HTML 的程序员就能月入上万,而 2010 年移动互联网崛起时,移动开发相关的程序员缺口很大,一年经验的移动端程序员薪酬能超过五年其他领域的程序员。


    所以,程序员在你赚到的工资中你得分清哪些是来自行业发展的趋势力量,哪些是自身掌握的知识、技能和经验所耗费时间的折现值。吴军博士在他的书《浪潮之巅》中提出的技术行业和公司发展的浪潮规律,总有一些公司很幸运地、有意识或无意识地站在技术革命的浪尖之上,在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。如果你是有幸处在这样的公司,随着公司的发展数年间站上了浪潮之巅,那么也许你就是为数不多的赚到钱的程序员了。浪潮不常有,总是浪潮退去我们才发现原来浪潮已来过,一边遗憾的慨叹一边又充满期望的等待下一次浪潮。


    其实,如果对钱的追求没有达到需要财务自由的程度,程序员只需要持续努力地积累自己的知识、技能和经验就能实现不断的增值,达到一个小康中产的水平。有些人在程序员的道路上中途放弃了,会有一些理由比如觉得太累,也没有什么编程的天赋。关于天赋,网上有句流传甚广的话:「以我们的努力程度还完全没到拼天赋的阶段」。郝培强之前写过一篇流传甚广的文章(参考[3]),关于他的前妻,一个初中还没毕业的女生正是通过北大青鸟培训变身程序员,努力奋斗数年最后挣到年薪 40 万。所以也许持续的努力也是一种天赋吧,大部分人并不俱备,这需要克服我们与生俱来的懒惰。


    管理者


    想必很多程序员进入这行时都听说过这样的说法,当程序员老了,写不动代码了可以考虑转管理。这个说法建立在这样的认识上,老程序员们拼体力(加班)没有年轻人强;拼精力,人到中年家庭和工作各方面需要平衡的因素更多,也不如年轻人更专注;那么只剩下拼经验了,在这点上老程序员占优势。而且貌似经验这种东西在管理岗位上更易于发挥更大作用。


    对这类主观的想法不想做正确与否的评论,只是引发点思考。这里提点客观的方面,一般管理岗总是有限的,100 个程序员中可能只有 5 个管理岗的位置。而管理者的工作也分为两类,这个在梁宁那篇《看清自己的职场宿命》文中有过比较清晰的定义(参考[4]),中低级别的管理偏于「任务管理」侧重于将分配的任务及指标拆解成动作,安排动作序列,配置风险,配比团队人员保证完成任务,达成指标,这个级别的管理者最重要的是责任心和执行力。


    而高级别的管理者则属于「战略管理」,根据战略决策,安排任务优先级,配置资源、鼓舞士气,保证方向。梁宁在其文中总结对于战略管理者最核心的能力就是:「心力」,就是无止尽的操心能力。文中写道:「资源永远有限,战略常常在变,兄弟都是亲的,永远没人满意。」就是这一级别管理者面对的永恒命题。


    而关于「心力」让我们最好理解的就是,在你有了孩子后是不是感觉突然就多了很多事要操心,奶粉喝什么?空气也不好?摔了怎么办?病了怎么办?社会也差劲,抢小孩的也多了,最近连疫苗也沦陷了。教育会不会输在起跑线?学区房买不买?钢琴学不学?奥数学不学?唐诗背不背?母语还说不清就开始考虑英语该什么时候学?每个父母都为孩子提前操了很多心,但很多时候这心很可能还白操了,有时方法没用对还会扭曲孩子的成长,属于费尽心力还未讨得好。管理者其实也面临类似问题,不仅要操心还得好好权衡选择这心要怎么操才合适。


    这么一看管理者实际并不像我们简单想的高高在上,发号施令,躺着就把钱挣了的。若无足够的心力和操控心力的智力与技巧,还是算了吧,即便机缘上位恐怕也未必能够持久。曾经有个程序员老在公司内部论坛吐槽管理太差,后来把他提为研发部一把手,大意就是 「you can you up」。我那年刚入职该公司,后来吃过当年的团年饭后我再没见过这位程序员了,正应了那句「眼看他起朱楼,眼看他宴宾客,眼看他楼塌了」。


    到了「战略管理」级别的管理者通常年薪都是不错的,从百万到千万级。为什么值那么多钱,是因为技能逆天,智力超群,心力无穷么?而且这个级别的人通常来说工作经验都会比较丰富,也不会太年轻了。我揣摩了下觉得这里面的原因可能是岗位和人的双重稀缺性共同导致的市场定价。这个级别的管理者都是决策者,越高位的管理者的一个决策失误带来的代价是巨大的,但人是无法避免犯错的,所以我们只能设法找到决策正确概率更高的人。这里越多经历和经验的人可能犯过的决策失误越多,而每犯一次错误吸取的教训让他下次犯错的概率更小。


    这个理论我感觉还是有效的,这个世界上有个数亿人参与的决策游戏,那就是股市。这个是一个越早参与越有利的事,因为你一定会犯错。早期挣钱少,犯点错损失也小。但每犯一次错都减少了下次犯错的机率(对有自省能力的人而言),若是等工作了十来年,攒了一大笔钱,听说牛市来了想去股市捞一笔,很可能一次错误就被洗白了,恩,去年的股灾网上各种传说洗白了不少中产。


    所以,若你感觉自己各方面都已准备就绪却还没有进入管理者的序列,那么很可能的原因是岗位暂无空缺吧。关于管理者大概就写这么多,毕竟我也不是管理者,只是站在第三方观察者的角度去描述了下我的认知,仅作参考。


    ...


    三类完全不同类型的劳动群体,分别主要依赖「体力」、「智力」和「心力」来工作和赚钱。若只想赚点钱求个生存温饱甚或小康,在如今的社会环境下还不算太困难,难的是若想摆脱钱的束缚与困扰,就需要赚更多的钱。


    参考


    [1] 新华网. [透视2016年春运新变化:3亿农民工的“城”与“乡”](http://news.xinhuanet.com/local/2016-02/09/c_128711019.htm). 2016.02  

    [2] IDC. [全球有1850万程序员 中国占10%](http://tech.ifeng.com/it/detail_2014_01/06/32762698_0.shtml). 2014.01  

    [3] tinyfool. [我前妻的故事,一个初中肄业生的奋斗](http://mp.weixin.qq.com/s?__biz=MjM5MjUwNzIyMA==&mid=400060668&idx=1&sn=9064cf2be8b99bdfb0fdf9eba157eaf6&scene=21). 2015.10  

    [4] 梁宁. [腾讯的职级系统——看清自己的职场宿命](http://mp.weixin.qq.com/s?__biz=MjM5MjA4MjU4MQ==&mid=200790551&idx=1&sn=17cb243a839d12f19a997be4d2572537&scene=21). 2014.08

    展开全文
  • 工作容易,赚钱很难

    万次阅读 2017-11-21 19:40:59
    工作容易,赚钱很难 李宗盛有首歌的歌词里写到:「工作是容易的,赚钱是困难的」。乍听感觉有点矛盾,工作的个重要结果不就是赚钱么,为什么工作容易赚钱却难?但仔细想就恍然其中想表达的意思...

    工作容易,赚钱很难




    李宗盛有首歌的歌词里写到:「工作是容易的,赚钱是困难的」。乍一听感觉有点矛盾,工作的一个重要结果不就是赚钱么,为什么工作容易赚钱却难?但仔细一想就恍然其中想表达的意思了。


    工作的本质是出售劳动价值,通过工作赚到的钱是对劳动价值的价格度量,也即劳动的市场价格。而劳动的市场价格总是围绕价值上下波动,有可能折价也可能溢价,但总不会偏离价值本身太远。所以歌词里的意思可能是,你随便找份工作来养家糊口可能还算容易,但想赚很多钱这可就困难了。而不同劳动种类的市场价格差异也是巨大的,我想先从一些典型的不同劳动种类群体来谈谈他们的工作与赚钱。


    农民工


    最新的数字显示农民进城务工的人数达到 3 亿(参考[1]),这代表了一个很大的工作群体。而因为家庭和工作的原因我接触过一些这个群体的人,所以了解了他们是如何工作并赚钱的。


    过去的十来年城市房地产业的大发展吸纳了一大部分农民工,他们吃住干活都在工地上,年龄跨度从十多岁到五六十岁。干一天活算一天报酬,所以算是个日薪制的工作吧。而不同的工种之间的每日报酬也不同,一些年老的农民工只能干些简单且没那么重体力的活,所以日薪自然低些,大概在 100 元附近吧。而一些重体力和高风险(如:高空户外)的活就需要年轻人,而日薪也相应更高,可能有两、三百不等。干一天算一天钱,对确实只是算,计算的算。每天并拿不到钱,平时只发点伙食费够吃饭而已,剩下的工资需要年底(春节前夕)一次性结算发放。所以每到年底总有些农民工欠薪讨薪的事件,也正是源于此类行业规则的不合理埋下的隐患。


    农民工付出的劳动价值的本质正是他们的体力和时间,时间是有极限的,无非就是干满一年 365 天,而体力也是会随着年龄增长而下降的。所以农民工里年龄过了一定阶段的老年人日薪就是比年轻人低,而他们的工作内容和性质除了风险溢价外并没有其他太多的技能和经验溢价。确实可能有些工种是有一定技能要求的,但多是可以通过短时间的培训很快熟能生巧的技能,而经验在此类工作内容里也是无处沉淀的,自然也带不来额外的溢价。这正是体力劳动者面临的现实,人只要不懒惰通过出售体力是可以养活自己甚至养活一家人的,但还想要赚更多钱实际就困难重重了。


    像农民工这样的体力劳动者的收入总是没那么稳定的。在房地产行业红火的日子出现的民工荒,自然带来价格的上涨,而近年房地产不那么景气后,农民工连找活做都困难了。也就是在行业不景气时连工作都没那么容易了,农民进城找不到工只能回农村,在农村可以种田但一样还受到自然天气的影响,养点鸡鸭猪鹅也会受瘟疫疾病的影响。而且显然的事实是在农村无论种田还是养家禽都比进城务工赚的钱少的多,要不哪来 3 亿的农民工呢。


    今天房地产不那么景气了,而互联网带来的电商新行业还处于上升期。这也带动了一个旧行业的大变化,那就是快递业。也有不少农民工进入这行,相比建筑工地而言工作待遇和环境都提高了不少。至少工资可以按时地拿到,正规点的快递公司还会按规定买上五险一金,冬夏天还有额外的高低温津贴,而且多劳一般都是多得的。也许处于上升快递行业的农民工们工作还是容易的,只是还要赚更多钱则困难,而处于衰退房地产业的农民工们则工作已是不易,何谈赚钱呢。


    程序员


    虽然程序员们喜欢自嘲为码农或码工,但程序员的工作与农民工相比还是有天壤之别的。很多程序员将自己的工作比作搬砖,暗示重复而无趣。但此搬砖相比农民工的真搬砖其中的本质差别在于,程序员即使搬砖也是积累经验的,而经验是会带来溢价的。


    即便你再觉得程序员的搬砖多么无趣,但我们看看实际国内的程序员也不过在几百万人数(参考[2]),相比真搬砖的农民工数量差了两个量级。这里面的制约是什么呢?在去年万众创新,大众创业,互联网+席卷全行业时,每个公司似乎都已万事俱备,只差一个程序员了。真相是一个合格的程序员的培养周期实际比我们想象得要长得多。不少人通过参加编程培训机构的短期(3到6月不等)培训入行,实际初期能赚到的钱可能还真不如农民工在工地上搬砖的水平。虽然我司办公楼对面就有一个北大青鸟培训,但我对这类培训入行的程序员的市场平均价格还是不太清楚,只是凭感觉觉得可能并不高。


    就好像我有好些同事,十年前他们还算是从重点大学的计算机专业毕业进入程序员这行,当时的程序员薪资也就 1k 左右,而那时我机械的同学去深圳富士康干流水线工人的工作每月还有 1.8k 呢。十年下来,程序员的起薪水平随着行业的快速发展涨了很多,而不同级别、背景和经验的程序员之间的薪酬跨度也足够大,年薪从几万到几百万不等。


    最近五年我都有连续参加校园招聘,感受很明显得是校招一年比一年起薪高,导致五年前进来的学生工作三年后拿到的薪酬反而没有两年前刚招的学生高,出现了薪酬倒挂的现象。这就是由行业的火热发展导致的供需失衡,引发了市场价格涨幅远远超过了公司的年度涨薪机制。现在一线互联网公司(如 BAT 等)还会给一些特别优秀的毕业生发出 Special Offer,年薪通常在 50万+,这个年薪我想甚至很可能超过大部分工作了十年的老程序员。


    为什么不同程序员的价值体现出来的价格差异如此之大?这里除了知识、技能、经验的积累差别之外也就还有行业背景的因素。程序员写程序的能力是很难单独变现的,程序附着在软件之上,而软件附着在具体的行业之上。所以在一线互联网公司十年的程序员和在外包 IT 公司十年的程序员,知识、技能、经验的差距也许没有一倍,但收入上可能就有数倍的差距,额外的部分我理解就是程序附着的行业价值链之间的差距。就像 2000 年 PC 互联网兴起时,一个会写 HTML 的程序员就能月入上万,而 2010 年移动互联网崛起时,移动开发相关的程序员缺口很大,一年经验的移动端程序员薪酬能超过五年其他领域的程序员。


    所以,程序员在你赚到的工资中你得分清哪些是来自行业发展的趋势力量,哪些是自身掌握的知识、技能和经验所耗费时间的折现值。吴军博士在他的书《浪潮之巅》中提出的技术行业和公司发展的浪潮规律,总有一些公司很幸运地、有意识或无意识地站在技术革命的浪尖之上,在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。如果你是有幸处在这样的公司,随着公司的发展数年间站上了浪潮之巅,那么也许你就是为数不多的赚到钱的程序员了。浪潮不常有,总是浪潮退去我们才发现原来浪潮已来过,一边遗憾的慨叹一边又充满期望的等待下一次浪潮。


    其实,如果对钱的追求没有达到需要财务自由的程度,程序员只需要持续努力地积累自己的知识、技能和经验就能实现不断的增值,达到一个小康中产的水平。有些人在程序员的道路上中途放弃了,会有一些理由比如觉得太累,也没有什么编程的天赋。关于天赋,网上有句流传甚广的话:「以我们的努力程度还完全没到拼天赋的阶段」。郝培强之前写过一篇流传甚广的文章(参考[3]),关于他的前妻,一个初中还没毕业的女生正是通过北大青鸟培训变身程序员,努力奋斗数年最后挣到年薪 40 万。所以也许持续的努力也是一种天赋吧,大部分人并不俱备,这需要克服我们与生俱来的懒惰。


    管理者


    想必很多程序员进入这行时都听说过这样的说法,当程序员老了,写不动代码了可以考虑转管理。这个说法建立在这样的认识上,老程序员们拼体力(加班)没有年轻人强;拼精力,人到中年家庭和工作各方面需要平衡的因素更多,也不如年轻人更专注;那么只剩下拼经验了,在这点上老程序员占优势。而且貌似经验这种东西在管理岗位上更易于发挥更大作用。


    对这类主观的想法不想做正确与否的评论,只是引发点思考。这里提点客观的方面,一般管理岗总是有限的,100 个程序员中可能只有 5 个管理岗的位置。而管理者的工作也分为两类,这个在梁宁那篇《看清自己的职场宿命》文中有过比较清晰的定义(参考[4]),中低级别的管理偏于「任务管理」侧重于将分配的任务及指标拆解成动作,安排动作序列,配置风险,配比团队人员保证完成任务,达成指标,这个级别的管理者最重要的是责任心和执行力。


    而高级别的管理者则属于「战略管理」,根据战略决策,安排任务优先级,配置资源、鼓舞士气,保证方向。梁宁在其文中总结对于战略管理者最核心的能力就是:「心力」,就是无止尽的操心能力。文中写道:「资源永远有限,战略常常在变,兄弟都是亲的,永远没人满意。」就是这一级别管理者面对的永恒命题。


    而关于「心力」让我们最好理解的就是,在你有了孩子后是不是感觉突然就多了很多事要操心,奶粉喝什么?空气也不好?摔了怎么办?病了怎么办?社会也差劲,抢小孩的也多了,最近连疫苗也沦陷了。教育会不会输在起跑线?学区房买不买?钢琴学不学?奥数学不学?唐诗背不背?母语还说不清就开始考虑英语该什么时候学?每个父母都为孩子提前操了很多心,但很多时候这心很可能还白操了,有时方法没用对还会扭曲孩子的成长,属于费尽心力还未讨得好。管理者其实也面临类似问题,不仅要操心还得好好权衡选择这心要怎么操才合适。


    这么一看管理者实际并不像我们简单想的高高在上,发号施令,躺着就把钱挣了的。若无足够的心力和操控心力的智力与技巧,还是算了吧,即便机缘上位恐怕也未必能够持久。曾经有个程序员老在公司内部论坛吐槽管理太差,后来把他提为研发部一把手,大意就是 「you can you up」。我那年刚入职该公司,后来吃过当年的团年饭后我再没见过这位程序员了,正应了那句「眼看他起朱楼,眼看他宴宾客,眼看他楼塌了」。


    到了「战略管理」级别的管理者通常年薪都是不错的,从百万到千万级。为什么值那么多钱,是因为技能逆天,智力超群,心力无穷么?而且这个级别的人通常来说工作经验都会比较丰富,也不会太年轻了。我揣摩了下觉得这里面的原因可能是岗位和人的双重稀缺性共同导致的市场定价。这个级别的管理者都是决策者,越高位的管理者的一个决策失误带来的代价是巨大的,但人是无法避免犯错的,所以我们只能设法找到决策正确概率更高的人。这里越多经历和经验的人可能犯过的决策失误越多,而每犯一次错误吸取的教训让他下次犯错的概率更小。


    这个理论我感觉还是有效的,这个世界上有个数亿人参与的决策游戏,那就是股市。这个是一个越早参与越有利的事,因为你一定会犯错。早期挣钱少,犯点错损失也小。但每犯一次错都减少了下次犯错的机率(对有自省能力的人而言),若是等工作了十来年,攒了一大笔钱,听说牛市来了想去股市捞一笔,很可能一次错误就被洗白了,恩,去年的股灾网上各种传说洗白了不少中产。


    所以,若你感觉自己各方面都已准备就绪却还没有进入管理者的序列,那么很可能的原因是岗位暂无空缺吧。关于管理者大概就写这么多,毕竟我也不是管理者,只是站在第三方观察者的角度去描述了下我的认知,仅作参考。


    ...


    三类完全不同类型的劳动群体,分别主要依赖「体力」、「智力」和「心力」来工作和赚钱。若只想赚点钱求个生存温饱甚或小康,在如今的社会环境下还不算太困难,难的是若想摆脱钱的束缚与困扰,就需要赚更多的钱。


    参考


    [1] 新华网. [透视2016年春运新变化:3亿农民工的“城”与“乡”](http://news.xinhuanet.com/local/2016-02/09/c_128711019.htm). 2016.02  

    [2] IDC. [全球有1850万程序员 中国占10%](http://tech.ifeng.com/it/detail_2014_01/06/32762698_0.shtml). 2014.01  

    [3] tinyfool. [我前妻的故事,一个初中肄业生的奋斗](http://mp.weixin.qq.com/s?__biz=MjM5MjUwNzIyMA==&mid=400060668&idx=1&sn=9064cf2be8b99bdfb0fdf9eba157eaf6&scene=21). 2015.10  

    [4] 梁宁. [腾讯的职级系统——看清自己的职场宿命](http://mp.weixin.qq.com/s?__biz=MjM5MjA4MjU4MQ==&mid=200790551&idx=1&sn=17cb243a839d12f19a997be4d2572537&scene=21). 2014.08

    展开全文
  • SAP真的很难

    千次阅读 2007-07-30 21:32:00
    经过了近个月的实践,我觉得自学SAP的流程真的很难呀.很多东西真的是不接触就不知道,不实践就永远也不可能真正理解的. 也不知道上天是特别的关爱我还是折磨我,让我接触了SAP有让我无法真正的拥有他.唉~~~~只有靠...
  • JavaEE 从入门到放弃():Java EE 是个什么东西

    万次阅读 多人点赞 2018-07-09 19:34:09
    JavaEE 从入门到放弃(四):MVC 模式 JavaEE 从入门到放弃(五):如何理解 Spring JavaEE 从入门到放弃(六):框架的选择 (持续更新中) 另外我 Vue + Spring Boot 做了个前后端分离的小项目,并做了一下...
  • 深度神经网络为何很难训练

    万次阅读 2016-01-26 11:52:44
    本文是关于深度神经网络为何很难训练的翻译。
  • linux入门真的很难吗?

    千次阅读 2012-10-11 00:16:30
    但是工作中一直没用过,进入诺西干了三年半,所有产品都是在linux上面运行和开发,终于有机会彻底接触linux了,以前对linux模糊的理解,在个又个项目中磨练,当入门Linux后发现,其实linux并不是很难,不过还是有点技巧,...
  • 开发个 app 有多

    千次阅读 2017-01-15 14:38:26
    开发个 app 有多难? 非互联网行业从业者,只是单纯想问问 ...开发个APP有多难?...我之前关注的几个健身平台半年前就声称...所以开发APP真的很难吗? 如果能通俗的语言解释整个APP的开发过程和难点最好了:)
  • 自学能力,是一个程序员最基本的素质,没有之一。   不管这个程序员是大学毕业科班出身...所以,仅就前端来讲(因为我只会前端),你只有二种选择,要么在一开始就自学,要么跟别人学一段时间,然后再自学。   ...
  • 由于项目需要的原因,后来渐渐开始学起 HTML、CSS、JavaScript 这些语法相关的东西。刚接触时没有感觉太大难度。 当时就想着怎么把页面搞好看,搞各种动画炫技。写个小球从下面弹出来的效果,换各种姿势弹出。当时...
  • python爬虫入门教程(二):开始一个简单的爬虫

    万次阅读 多人点赞 2017-09-12 15:02:21
    python爬虫入门教程,介绍编写个简单爬虫的过程。
  • 2016-08-26近期方面是所在的公司招聘Java开发人员很难招到合适的,投简历的人很少;而另方面,经常听身边的人说Android、iOS方面找工作不好找,特别是没什么经验的,经验比较少的!说是不好找,但在我家所在的...
  • 其实我当初决定开始写博客的想法挺简单的,觉得自己搞技术这么多年...更令我没想到的事,在我开始写博客不久之后,人民邮电出版社图灵公司的副总编辑陈冰老师就联系上了我,希望我可以写本关于Android开发技术的书籍
  •  但另方面,我们也发现,这些想要转行的同学们往往会遇到多困扰。就在周以前,我统计了一下身边一些想要转行做程序员的朋友他们的难题,结果大致如下: 比如达内,黑马程序员,北大青鸟等各种培训班层出不穷...
  • 如何从零开始个操作系统?

    万次阅读 多人点赞 2019-08-20 18:17:55
    如何从零开始个简单的操作系统? 关注问题 写回答 操作系统 编程学习 如何从零开始个简单的操作系统? 看了这个:从零开始个简单的操作系统 求指教。 关注者 4,787 被浏览 352,884 关注问题 ...
  • 从2013年开始,前端越来火。有观点说前端简单,于是乎很多人就跑去学前端了。有观点说做ios赚钱,于是乎相信这观点的人,就跑去培训机构学iOS开发。又有观点说Android开发工资高,于是又有批人脑袋热,丢下...
  • 我有个大学校友,他是去年 8 月份才开始正式学习 Java 的,之前在一家私企工作了 5 年,工资个月只有不到 6000 块,日子过得苦逼,毕竟郑州的房贷压力也不小,公司就那么大,除非领导离职,否则根本看不到晋升...
  • 最近这个话题频频出现,而且讨论地越来越激烈,也越来越有趣。...之后又有了如下的这张图片  暂且不说这个微博的主人是不是炒作... 博主在做简历这件事情上,经常也会提醒师弟师妹们邮箱一定换个看起来正式一点
  • 刚毕业,找工作,很多人都面临相同的问题。自己能做什么?...可以加你Java资料分享群java《学习》+交流 523401738作为5大编程语言的JAVA是当今最受各大公司的青睐,多项目,多工程都需要用到java...
  • 从零开始学会做个简单的APP

    万次阅读 多人点赞 2016-04-21 13:23:08
    学校的联通宽带是按时长收费的,但是每次查询已用时长和所扣费用步骤都十分的繁琐,大二的时候都想着要自己做个APP来帮助大家减少这些繁琐的步骤,终于拖了半年多才开始做。从只有一点Java基础到最后做出来可用的...
  • 个毕业一年程序员的感悟

    千次阅读 多人点赞 2018-07-22 00:01:04
    所以,又开始习惯性地复盘过去的段经历,现在不成熟的想法去回顾之前更不成熟的想法,哈哈。 挑出我认为比较重要的四点感受来说吧。 .理论知识的重要性 这个问题,我在毕业半年之后就意识到了。经常...
  • 我的2018:一年的时间写份年终总结!

    万次阅读 多人点赞 2018-12-30 23:01:37
    1、题记 不觉中,已经连续写了五年年终总结了(2013,2014,2015,2016,2017)。最初写总结是因为报名参加了...差不多从读初中开始,每年都会写一些当下的思考和总结性的文章,从开始的流水账式的记录,到大学阶段的...
  • 从1开始学习java个月后总结心得

    千次阅读 2016-10-07 14:59:26
    以前有初学者基础,回到杭州后发现周围所有的人都在谈技术,各种分布式,大数据,深度学习,年薪几十万甚至百万,少的也有20K,于是本着面向美好家园的思想开始转型学习JAVA开发个多月了,早晨醒来就看书,9点...
  • 无论是在校的学生也好,还是转行的也好,如今学JAVA开发的人越来越多,造成了如今新手越来越多,有人说前端饱和了,JAVA饱和了,JAVA才刚开始种好的势头发展就饱和了。我也是无语,一般说饱和的人,基本是学的不...
  • 从零开始个框架的详细步骤

    万次阅读 多人点赞 2016-05-31 17:28:27
    如果你打算写框架,那么肯定心里已经有个初步的定位,比如它是个缓存框架、Web MVC框架、IOC框架、ORM/数据访问框架、RPC框架或是个用于Web开发的全栈式框架。 是 否要重复造轮子?除非是练
  • 游戏开发杂记() 万事开头

    千次阅读 多人点赞 2018-11-13 17:27:04
    还记得小时候第次接触游戏,是西安二套的游戏俱乐部频道,不仅有各种最新的PS2游戏演示,还有电话拨号玩各种游戏的互动环节。那时候第次看到合金装备2中裸体的雷电,第次看到尤娜在海面上起舞,第次看到秀真...
  • 网络爬虫是个什么东西

    万次阅读 多人点赞 2017-04-08 17:01:19
    大学最后时期比较认真的研究和开发的爬虫程序,日子长了为了防止忘记索性记个日记,也方便其他需要了解的人,过程比较艰辛,不过当时还是有乐趣。
  • 打算开始个2.5D游戏引擎

    千次阅读 2013-01-01 00:40:06
    1、为什么有那么多游戏引擎还要自己写个游戏引擎?  我本身并不是学图形学的,只是个有三年游戏开发经验的客户端程序员。我的工作经历告诉我,如果不自己写个游戏引擎(即便最终不能有实际应用)那么就不会...
  • 学习,并从事IOS开发快两年了,由个...现在到了开发的个阶段了,基本的东西很熟了,想着提高技术,学习一点的东西,不知该遵循什么思路,从何开始。现在是看到哪里感兴趣就学学,感觉乱。请各位前辈赐教了。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 415,862
精华内容 166,344
关键字:

一开始很难用的东西