本文主要是介绍程序员的财务自由之路(二)- 有的放矢,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一、前言
- 二、如何制定目标
- 三、C++ 入门
- 1、C++ 是世界上最好的语言
- 2、编码能力
- 3、算法
- 4、小试牛刀
- 1)标准输入输出
- 2)ASCII 基础知识
- 3)STL 排序函数 sort 的 应用
- 4)简单字符串处理
- 5)简单进制转换
- 6)利用字符绘图
- 四、结尾彩蛋
一、前言
- 我们那个年代上大学的时候有个网站叫 校内网,相信那个年代的人都知道,期末复习功课的时候总是要刷一下,就像现在的抖音一样,有毒!最近我再去看的时候,发现密码已经完全忘记了,怎么试都试不出来。后来(BGM:我总算学会了,如何去爱!可惜你,早已远去,消失在人海),我终于意识到,我失去的又岂止是一个密码,更重要的,是我逝去的青春!
- 我们总是在想,当初的我们如果能够这样那样就好了,但是,你有没有想一下,如果现在不动起来,到了未来,你同样还是会后悔!所以:
与其后悔当初,不如把握当下
- 给自己树立一个目标是非常重要的,有目标才会有方向,有目标才会有动力,有目标才会有人生的意义;
- 虽然我现在算得上衣食无忧,但是离财务自由还有很漫长的路要走,然而我不会放弃,因为这是我的最终目标,路漫漫其修远兮,吾将上下而穷索!
这里用到了一个穷字,乃 ‘穷其一生去求索’ 的意思,当然,也代表了我的真实写照:穷!
- 接下来我就给大家分享一下,我在朝着这个目标努力的路上是如何前行的。
- 当然,我不需要太多人点赞,你自己偷偷收藏就好,因为我不想太多人知道!毕竟有个词叫 ‘闷声发大财’ !
二、如何制定目标
1、目标蓝图
- 既然已经很明确了,目标是财务自由,那么我们就来把这个蓝图规划一下:
贫穷的我
...
财务自由
- 为了让这个事情看起来更加可行,我们需要把一些事情量化,比如赚多少钱以后才能称得上财务自由,估计算10亿吧,10个亿离财务自由应该也只剩临门一脚了,至少我是这么认为的,我一直认同一句话:
你永远赚不到超出你认知范围外的钱,就算赚到了,也往往会凭实力亏掉;
你所赚的每一分钱,都是你对这个世界认知的变现;
10亿人民币暂时已经超出了我的认知,再往上我无法想象,所以我们可以把蓝图更加细化一点,如下:
贫穷的我
...
拥有10亿人民币
财务自由
- 当然,我们还可以有其它途径,比如拥有 2000 套房,每套500万,其实也算10亿资产了,而且余生基本就靠收租就行了,还得雇人帮你收,当然理想是美好的,现实是残酷的。啊呸!怎么能说泄气的话,蓝图加上!
贫穷的我
...
拥有10亿人民币
拥有1000套房
财务自由
- 但是看起来还是那么的不靠谱,因为 这两个目标对于 ‘贫穷的我’ 来说,并不是那么容易达到的,我们还需要再理出一些中间环节。
- 所以在大目标面前,我们需要制定一些小目标,比如 1个亿,1000万,100块 等等;
贫穷的我
拥有10万人民币
拥有100万人民币
拥有1000万人民币
拥有1亿人民币
拥有10亿人民币
拥有1000套房
财务自由
- 这里有个问题,我们只订立了要赚多少钱,然而这是一个虚无缥缈的目标,所以我们需要把它具象化。
- 因为知识就是金钱,所以我们首先要扩充我们的知识体系,毕竟是 程序员的财务自由之路,技术栈才是我们最应该关心的;
- 于是,我们找到了我们的另一条支线,然后你会发现,随着你的技术栈的提升,财务自由是水到渠成的事情;
贫穷的我
拥有10万人民币
成为初级程序员
拥有100万人民币
成为中级程序员
拥有1000万人民币
成为高级程序员
拥有1亿人民币
成为资深程序员
拥有10亿人民币
成为架构师
拥有1000套房
成为首席架构师
财务自由
2、技术栈
栈是计算机中的一种数据结构,线性表的一种,特点是先进后出;常用在函数传参的实现中;
- 举个例子,你在学习乘法之前,如果没有学习过加法,是不是不好理解,但是如果有了加法的基础,是不是会好理解很多;如图所示,
- 就是一个乘法转换为加法的例子;
依赖于
依赖于
依赖于
依赖于
乘法
加法
3X2
3+3
3X4
3X2+3X2
3+3+3+3
- 同样道理,在我们学习某一个知识的时候,一定会有一些知识盲区,这个时候就需要你去互联网上找各种资料了,对于程序员来说,通过各种经验和实践解决问题的能力才是你的 核心竞争力 。有了核心竞争力,我们画的蓝图才能得以实现!
- 但是我们的知识体系并不是简单的线性结构,它是一个交错复杂的具有强依赖关系的图结构;所以,与其说是技术栈,不如说是技术图;
- 如图所示,当你接触到一个新的概念,叫三角函数
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)标准输入输出
HDU 2003 求绝对值
#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 基础知识
HDU 2026 首字母变大写
#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 的 应用
HDU 2000 ASCII码排序
#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)简单字符串处理
HDU 2081 手机短号
#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)简单进制转换
HDU 2031 进制转换
- 计算机数字进制转换的应用;取模,迭代除进制,逆序输出,注意考虑 负数、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)利用字符绘图
HDU 2052 Picture
#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、结语
这篇关于程序员的财务自由之路(二)- 有的放矢的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!