高中毕业生要不要学计算机?程序员会不会饱和

2022-12-13 15:25:35 浏览数 (1)

一转眼我也是迎来了毕业,可喜也可悲,终于可以去真正意义上去学计算机了,但是一个学竞赛的学生只考了一个二本学校,一本差几分,如果去其他专业的话,可以去一个不错的学校,但是人们都说只有:爱好 理论 工程=一个合格的程序员,不是吗? 我在仔细考虑过后,还是打算卷计算机专业,前辈们,后浪又来了!!! 我想有不少学生面临和我一样的选择,但是我还是要说,综询自己内心的选择,如果热爱就来,但是单纯为了高薪还是算了,毕竟工作强度也是高于普通行业的,所以高薪,就像我当年学写第一个程序的时候,英语字母都常常打错

代码语言:javascript复制
#include<iostream>
using namespace std;
int main()
{
	cout<<"hello world"<<endl;
	return 0;
}

满满的回忆不是吗? 都说计算机是青春饭,可是如果你在老师,医生等行业,刚刚开始有价值的时候就赚够了钱,不是也很nice吗?哈哈,这只是想想了。 但是如果技术足够硬的时候,你不能自己去开发小软件,目标开发赚钱吗? 所以说还是要技术过硬,如果像我一样学历太一般的话,还是要考研来提升一下学历的,毕竟像是架构师,除非是工作经验十分高,起步学历都是硕士的,大学上去以后还是要好好学学算法,暑假最好去实习,据我了解大多数学校学的和社会需求还是脱节的。 虽然有很多程序员是非科班出生的,甚至有的都是几个月培训机构速成的,但是他们学的,和你系统学过来的能一样吗?速成进的岗位,我想大佬们也都知道,可替代性太高了,随便一个人都可以做,那你进去以后,有说话的权力吗?或者说你敢跳槽,吗?可能明天就有年轻人来替代你了,所以说是想卷计算机的,有兴趣的同行就不要害怕了。 都说计算机已经是夕阳行业了,甚至每一个人都会一点,可是真的是这样吗,那么为什么不所有人都去做计算机兼职呢?难道说保安都比计算机强吗?工资就摆在那里,信不信有你们,在过几年计算机类仍然是分数比较高的专业,并且我感觉既然选择了这个就勇敢的走下去,难道当一个“秋名山码神不好吗”? 还有就是计算机确实人比较多,但是人才还是缺乏的,如果怕掉头发,可以杜绝996,去一些国企或者是外企的,前提都是你的技术要硬,nb,最后就是我™就是“秋名山码神”。

代码语言:javascript复制
#include<iostream>
#include<windows.h>
#include<conio.h>
#include<deque>
#include<ctime>
#include<stdexcept>
using namespace std;

struct Snake { //蛇类结构体
    char image;
    short x, y; //坐标
};

class snakeGame {
	public:
	snakeGame();
	void printMap();
	// 控制光标移动
	void gotoxy(short x, short y) {
		hOut = GetStdHandle(STD_OUTPUT_HANDLE); //获取句柄
		pos = {x, y};
		SetConsoleCursorPosition(hOut, pos); //移动光标
	}
	//隐藏光标
	void HideCursor()
	{
		HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
		CONSOLE_CURSOR_INFO CursorInfo;
		GetConsoleCursorInfo(handle, &CursorInfo);//获取控制台光标信息
		CursorInfo.bVisible = false; //隐藏控制台光标
		SetConsoleCursorInfo(handle, &CursorInfo);//设置控制台光标状态
	}
	// 初始化蛇身,可根据需要更改初始长度
	void initSnake() {
		snake.push_front({'@', width / 2, height / 2});
		for (int i=0; i<2;  i)
			snake.push_back({' ', width/2,static_cast<short>(height/2 i 1)});
	}
	// 判断是否食物产生位置与蛇身冲突
	int WrongLocation() {
		for (Snake body : snake)
			if(body.x == food_x && body.y == food_y) return 0;
		return 1;
	}
	// 产生食物,并打印
	void createFood() {
		do {
			food_x = rand() % (width - 4)   2;
			food_y = rand() % (height - 2)   1;
		} while (!WrongLocation());//处理冲突
		gotoxy(food_x,food_y); cout << '*' << endl; //打印食物
	}
	void printSnake();
	// 清除蛇尾
	inline void clearSnake(Snake &tail) {
    	gotoxy(tail.x, tail.y); cout << ' '; //覆盖蛇尾,不使用清屏函数,避免了闪烁
	}
	void judgeCrash();
	void foodEaten();
	// 监控用户键盘输入
	void userInput() {
		char ch;
		switch(ch=getch()) {
			case 'w':if (dir != 's') dir = ch;break;
			case 'a':if (dir != 'd') dir = ch;break;
			case 's':if (dir != 'w') dir = ch;break;
			case 'd':if (dir != 'a') dir = ch;break;
			case 'v':speed*=0.8;break; case 'b':speed*=1.5;break;
			case ' ':gotoxy(width / 2, height); cout << "游戏已暂停,任意键继续"; getch();
            gotoxy(width / 2, height); cout << "                     "; break;
			default:break;
		}
	}
	private:
	// 以下是程序运行当中需要用到的一些中间变量或者是数据变量。
	enum MapSize {height = 40,width = 120}; //地图尺寸
	HANDLE hOut; COORD pos;
	char dir; //direction
	bool beg,eatFood=false;
	double speed=200;
	deque<Snake> snake;
	int food_x,food_y;
	int score=0;
};
// 处理吃到食物的情况
void snakeGame::foodEaten() {
	createFood();
	eatFood=true;
	speed*=.8;
	  score;
}
// 判断蛇是否撞墙或者吃到自己的尾巴
void snakeGame::judgeCrash() {
	int flag=0;
	if (snake.size()>=5) {
		deque<Snake>::iterator iter = snake.begin()   1;
		int x = (iter-1)->x, y = (iter-1)->y;
		for (; iter != snake.end();   iter) {
			if (iter->x == x && iter->y == y) flag=1;
		}}
	if (flag || snake.front().x == 1 || snake.front().x == width - 2 || snake.front().y == 0 || snake.front().y == height - 1)//检测是否撞墙或者是否吃到自身
    {
        gotoxy(width / 2 - 10, height /2);
        cout << "游戏结束!您的分数是: " << score << "分(回车继续)"<<endl;
        while(1) {
            dir = getch();
            if (dir == 'r') break;}
		runtime_error quit("游戏结束,正常退出"); throw quit;
    }
}
// 将蛇身打印出来
void snakeGame::printSnake() {
    deque<Snake>::const_iterator iter = snake.begin();
    for (; iter <= snake.begin()   1 && iter < snake.end();   iter) {
        gotoxy(iter->x, iter->y); cout << iter->image;
    }
}
// 打印出边框
void snakeGame::printMap() {
	int i;
    for (i = 0; i != width; i  = 2) cout << "■"; //这个图案宽度占2,高度占1
    gotoxy(0, 1);
    for (i = 1; i != height;   i) cout << "■" << endl;
    for (i = 1; i != height;   i) {
        gotoxy(width - 2, i); cout << "■";}
    gotoxy(0, height - 1);
    for (i = 0; i != width; i  = 2) cout << "■";
    cout << "贪吃蛇:1.方向键开始游戏 2.*代表食物 3.空格键暂停游戏n        4.键入'v'加速    5.键入'b'减速";
}
// 类的构造函数。
// 包含了程序的初始化(地图绘制,蛇身初始化),程序运行,程序结束等内容
// 是程序最关键的部分
snakeGame::snakeGame() {
	HideCursor(); // 隐藏光标
	srand(static_cast<unsigned int>(time(NULL)));
	beg=true;
	Snake tmp1,tmp2;
	while (1) {
		if(beg) { // 判断是不是第一次运行程序,因为第一次运行需要打印边框
			printMap();
			dir = getch();
			initSnake();
			createFood();
			beg = eatFood=false;
		}
		tmp2=snake.back();
		tmp1=snake.front();
		snake.pop_back();
		if (eatFood) { // 如果吃到食物...
			tmp2.image=' ';
			snake.push_back(tmp2);
			eatFood=false;
		}
		else clearSnake(tmp2);
		// 判断当前的前进方向,根据dir来进行移动
		if      (dir == 's')   tmp1.y;
        else if (dir == 'a') --tmp1.x;
        else if (dir == 'd')   tmp1.x;
        else 				 --tmp1.y;
		try{
			judgeCrash(); // 判断是否撞墙或者吃到自己
		}
		catch(runtime_error &quitSignal) {
			throw quitSignal;
		}
		snake.front().image=' ';
		snake.push_front(tmp1);
		printSnake();
		Sleep(speed 30);
		if (tmp1.x == food_x && tmp1.y == food_y) 
			foodEaten();
		// 监测用户的键入
		if(kbhit()) userInput();
	}
}
int main() {
	// 设置小黑框的一些参数
	system("mode con cols=120 lines=42");
	try{
		snakeGame game;
	}
	catch(runtime_error &gameEnd) {
		system("cls");
		cout<<gameEnd.what();
		getch();
	}
}

0 人点赞