程序员的财务自由之路(二)- 有的放矢
作者:互联网
文章目录
一、前言
- 我们那个年代上大学的时候有个网站叫 校内网,相信那个年代的人都知道,期末复习功课的时候总是要刷一下,就像现在的抖音一样,有毒!最近我再去看的时候,发现密码已经完全忘记了,怎么试都试不出来。后来(BGM:我总算学会了,如何去爱!可惜你,早已远去,消失在人海),我终于意识到,我失去的又岂止是一个密码,更重要的,是我逝去的青春!
- 我们总是在想,当初的我们如果能够这样那样就好了,但是,你有没有想一下,如果现在不动起来,到了未来,你同样还是会后悔!所以:
与其后悔当初,不如把握当下
- 给自己树立一个目标是非常重要的,有目标才会有方向,有目标才会有动力,有目标才会有人生的意义;
- 虽然我现在算得上衣食无忧,但是离财务自由还有很漫长的路要走,然而我不会放弃,因为这是我的最终目标,路漫漫其修远兮,吾将上下而穷索!
这里用到了一个穷字,乃 ‘穷其一生去求索’ 的意思,当然,也代表了我的真实写照:穷!
- 接下来我就给大家分享一下,我在朝着这个目标努力的路上是如何前行的。
- 当然,我不需要太多人点赞,你自己偷偷收藏就好,因为我不想太多人知道!毕竟有个词叫 ‘闷声发大财’ !
二、如何制定目标
1、目标蓝图
- 既然已经很明确了,目标是财务自由,那么我们就来把这个蓝图规划一下:
- 为了让这个事情看起来更加可行,我们需要把一些事情量化,比如赚多少钱以后才能称得上财务自由,估计算10亿吧,10个亿离财务自由应该也只剩临门一脚了,至少我是这么认为的,我一直认同一句话:
你永远赚不到超出你认知范围外的钱,就算赚到了,也往往会凭实力亏掉;
你所赚的每一分钱,都是你对这个世界认知的变现;
10亿人民币暂时已经超出了我的认知,再往上我无法想象,所以我们可以把蓝图更加细化一点,如下:
贫穷的我 ... 拥有10亿人民币 财务自由- 当然,我们还可以有其它途径,比如拥有 2000 套房,每套500万,其实也算10亿资产了,而且余生基本就靠收租就行了,还得雇人帮你收,当然理想是美好的,现实是残酷的。啊呸!怎么能说泄气的话,蓝图加上!
- 但是看起来还是那么的不靠谱,因为 这两个目标对于 ‘贫穷的我’ 来说,并不是那么容易达到的,我们还需要再理出一些中间环节。
- 所以在大目标面前,我们需要制定一些小目标,比如 1个亿,1000万,100块 等等;
- 这里有个问题,我们只订立了要赚多少钱,然而这是一个虚无缥缈的目标,所以我们需要把它具象化。
- 因为知识就是金钱,所以我们首先要扩充我们的知识体系,毕竟是 程序员的财务自由之路,技术栈才是我们最应该关心的;
- 于是,我们找到了我们的另一条支线,然后你会发现,随着你的技术栈的提升,财务自由是水到渠成的事情;
2、技术栈
栈是计算机中的一种数据结构,线性表的一种,特点是先进后出;常用在函数传参的实现中;
- 举个例子,你在学习乘法之前,如果没有学习过加法,是不是不好理解,但是如果有了加法的基础,是不是会好理解很多;如图所示,
- 就是一个乘法转换为加法的例子;
- 同样道理,在我们学习某一个知识的时候,一定会有一些知识盲区,这个时候就需要你去互联网上找各种资料了,对于程序员来说,通过各种经验和实践解决问题的能力才是你的 核心竞争力 。有了核心竞争力,我们画的蓝图才能得以实现!
- 但是我们的知识体系并不是简单的线性结构,它是一个交错复杂的具有强依赖关系的图结构;所以,与其说是技术栈,不如说是技术图;
- 如图所示,当你接触到一个新的概念,叫三角函数 y = s i n ( x ) y = sin(x) y=sin(x) 的时候,你可能需要以下备用知识作铺垫,都是一些成年人一看就懂的概念,但是设想一下,如果你刚进入一个新的领域(比如 程序领域),扑面而来的技术面前可能你只是一个小婴儿,这个时候就像婴儿学习一样,必须从最基础的加法开始;
3、反向激励
- 时刻激励自己,如果没有动力,那么尝试来看看下面这段话;
- 如果你不去奋斗,你的代价是什么?
- 有人会说,那就穷一点呗,但是我过得舒服啊,我穷我快乐;
的确如此
-
如果你认为教育的成本太高,那你就看看无知的代价;
-
如果你不去努力奋斗,那你就尝试看看你为贫穷付出的代价,别人能用钱去解决的问题,你将不得不用时间、健康、尊严、甚至生命去解决;
-
当我们的父母逐渐老去,我们还没有出人头地的时候,你才会发现什么叫无助!大多数人憧憬希望,但是不会为了希望去努力;大多数人讨厌拼命,但是会为了攥在手里的东西去拼命;
-
所以,为了目标奋斗吧,少年!
三、C++ 入门
1、C++ 是世界上最好的语言
- 前面说了这么多,接下来才是我要说的正题;
- C++ 是世界上最好的语言!所以我想要把它推荐给刚步入大学的少年,甚至是想转行学程序的中年朋友们,我想说的是学好C++走遍天下都不怕,那么如何才能让你快速入门 C++ 呢?
答案只有一个,就是 天道酬勤
- 任何事情都是熟能生巧的,需要不断地练习,反复的尝试;
2、编码能力
- 我们是程序员,程序员是有另一种物种,我们超出三界之外,不在五行之中,能够实现各种各样千奇百怪的功能,只要你能想到,我就能给你实现出来;
- 那么如何锻炼我们的编码能力成为了重中之重,推荐一个 HDU Online Judge(杭电在线评测系统),你可以去上面刷水题,上面的水题,如滔滔江水,连绵不绝,又如黄河泛滥,一发不可收拾!至少我当年刷题的时候,进入了一种境界:
水能三日不饮,饭可七日不食,然题不可一日不刷
- 因为那时候上大学,目的很纯粹,它有个排名系统,每天就盼着排名一点一点往前走,所谓有竞争才有进步;
- 有时候真的很怀念大学的日子,逃课去机房敲代码刷题,那是我逝去的青春!
- 做任何事情都要有仪式感,让自己产生激情,才能继续往下走;
3、算法
程 序 = 数 据 结 构 + 算 法 程序 = 数据结构 + 算法 程序=数据结构+算法
- 很多人觉得算法是一个遥不可及的东西,其实并没有,只要按照好的习惯,遇到不懂就搞懂,逐渐强化自身的知识体系,总有一天算法会像你学习 1 + 1 时那么简单;
杠精:我小时候学 1 + 1 的时候花了一年;
作者:吃我一拳!杠精!
- 学到的要教人,赚到的要给人,帮助别人成长的同时,自己也在成长,多回复别人提出的提问,那些问题可能是你未知的领域,这时候才是你学习的最佳时机;这就是强者愈强的道理;有使自己变强的法则在,谁都无法超越,相信自己!
- 所以,如果有新手程序员遇到什么解决不了的问题,可以给这篇文章底下留言,在下必定竭尽所能,倾我所有,知无不言,言无不尽!
4、小试牛刀
1)标准输入输出
- 浮点数求绝对值函数 fabs 的应用
#include <iostream>
#include <cmath>
using namespace std;
double R;
int main() {
while (scanf("%lf", &R) != EOF) {
printf("%.2lf\n", fabs(R));
}
return 0;
}
2)ASCII 基础知识
- ASCII 码的基础应用,大小写字母转换
#include <iostream>
using namespace std;
char str[200];
bool isspace(char c) {
return c == ' ' || c == '\t';
}
int main() {
int i;
while (gets(str)) {
bool space = true;
for (i = 0; str[i]; ++i) {
if (!isspace(str[i])) {
if (space) {
space = false;
if (str[i] >= 'a' && str[i] <= 'z') {
str[i] = str[i] - 'a' + 'A';
}
}
}else {
space = true;
}
}
puts(str);
}
}
3)STL 排序函数 sort 的 应用
- STL sort 排序接口的简单应用;
#include <iostream>
#include <algorithm>
using namespace std;
char ch[10];
int main() {
while (scanf("%s", ch) != EOF) {
sort(ch, ch + 3);
printf("%c %c %c\n", ch[0], ch[1], ch[2]);
}
return 0;
}
4)简单字符串处理
- 遍历一个字符串的字符并进行输出
#include <iostream>
using namespace std;
char str[10000];
int main() {
int t, i;
scanf("%d", &t);
while (t--) {
scanf("%s", str);
printf("6");
for (i = 6; i < 11; ++i) {
printf("%c", str[i]);
}
puts("");
}
return 0;
}
5)简单进制转换
- 计算机数字进制转换的应用;取模,迭代除进制,逆序输出,注意考虑 负数、0 的情况;
#include <iostream>
#include <cstring>
using namespace std;
int val, R;
int sta[100];
void Print(int v) {
if (v >= 10 && v <= 16) {
printf("%c", v - 10 + 'A');
}
else {
printf("%d", v);
}
}
int main() {
int i;
while (scanf("%d %d", &val, &R) != EOF) {
if (val == 0) {
puts("0");
continue;
}
else if (val < 0) {
val = -val;
printf("-");
}
sta[0] = 0;
while (val) {
sta[++sta[0]] = val % R;
val /= R;
}
for (i = sta[0]; i > 0; --i) {
Print(sta[i]);
}
puts("");
}
return 0;
}
6)利用字符绘图
- 简单的利用字符进行控制台输出;
#include <iostream>
using namespace std;
int main() {
int n, m;
int i, j;
while (scanf("%d %d", &n, &m) != EOF) {
printf("+");
for (i = 0; i < n; ++i) printf("-");
printf("+\n");
for (i = 0; i < m; ++i) {
printf("|");
for (j = 0; j < n; ++j) printf(" ");
printf("|\n");
}
printf("+");
for (i = 0; i < n; ++i) printf("-");
printf("+\n");
puts("");
}
return 0;
}
- 有需要练习的可以去 git hub 上看源码 :
- 各类水题集锦(HDU2000 ~ HDU2099)
- 各类算法模板
四、结尾彩蛋
1、巧用位运算
如何用一句话判断这个数是不是2的幂?
x & (x - 1);
2、结语
- 没什么好说的 ~
标签:10,财务,int,有的放矢,程序员,str,printf,include 来源: https://blog.51cto.com/u_15239535/2849780