24岁的程序员,小弟我迷茫了

24岁的程序员,我迷茫了
今天在****发个牢骚贴,也请各位大牛帮我出出主意。我呢,也算是一个程序员了,之所以这样说是因为我不是科班出身,不是正牌大学计算机专业毕业。我自己从小喜欢玩编程,从小霸王里面的G-BASIC开始,后来小学玩VB,初中玩C,高中玩C++和汇编,大学又接触了C#。这么多年来自己一直是“玩”大的,也没有接触过真正的计算机教育,上大学之后学的是通信工程,说实话大一到大四有百分之七十的时间都是在写代码,自习从来都没去过,而且还是个二本,最恶劣的是还没有毕业,后来补考才通过的。
  毕业之后因为家庭条件不允许,自己也没心思在念书,就打算工作了。2011年9月份离校了,签了一份工作在沈阳蓝火炬公司,面试通过了之后毁了约,原因是家庭条件

的问题,我没有办法向别人一样稳稳的拿着应届生拿的薪水混日子,我必须要能在短时间内创造出一笔客观的资金,于是思量再三,我决定冒险赚一把快钱——写外挂。于是

我放弃了工作,毅然的去了安徽,和另一个比我大4岁的哥们合作开始了长达半年的写外挂的生涯。应该说那是一段对我来说相当艰苦的日子,7×20小时的工作强度,完全没

有时间观念的工作状态,吃饭和睡觉都是没有规律的。开始的时候完全找不到工作激情,没有经验,更没有娴熟的技术,对于游戏公司的反外挂、反调试手段几乎没有一点概

念,基本上属于除了会编程,别的一窍不通。这样的状态大概持续了一个星期,在这一个星期的过程中我恶补了Windows内核原理,啃了潘爱民老师的《Windows内核原理与实

现》,也读了毛德操老师的《Windows内核情景分析》,再后来也写了内核驱动程序,完成了HackShield的Bypass。慢慢的对调试器原理和构造也熟悉起来,学会了如何分析

游戏的数据结构和函数调用规则。就这样写了1个月的外挂,在马上搞定的时候,突然因为补考的原因离开了安徽,回到学校,补考完毕后,因为团队内部的问题,在分成方

面起了冲突,于是我主动退出团队,选择回到家乡东北发展。
  刚刚回到东北的时候想找一个稳定的工作,同时在业余从事外挂编写,这样也能赚点外快,但是东北地区的薪水让我感觉很纠结,而且,以我当时的从业方向除了反病毒

反外挂之外没有什么广阔的就业面。回到东北之后投了很多简历,大多都石沉大海,偶尔有一天腾讯打来电话,当时我还不知道是腾讯,接了之后知道是腾讯激动的说话都打

哆嗦。和对面的电脑管家部门的领导聊了一段时间,也问了我一些问题,最后让我等消息。在这之后大概半个月的时间都不时有腾讯各种部门的电话打来,问些关于工作经历

和技术的问题,大多都是很基础的问题,比如在C++中ECX代表什么,内核分发对象都有什么,内核SSDT HOOK,INLINE HOOK,以及中断级别的问题,最有印象的是问了一个处

理缺页中断的代码属于哪个中断级别的问题,当时我考虑了一下说是DISPATCH_LEVEL,后来事实证明我说的是对的,因为APC_LEVEL是可以处理缺页中断的,而DISPATCH_LEVEL

则不可以。不过悲催的是最后在谈我是否愿意去深圳发展,并且薪水要求是多少的时候,电话掉线了,再打过来,说了一句话,又掉线了,原因是我当时正在动车组上,信号

很弱,从这以后,在就杳无音讯了。
  在家里带了半个多月,过了十一之后,偶尔在51job上看到了长春某企业的一家招聘信息,要求熟练使用Windbg,Ollydbg,熟悉各种反调试原理等等,我的潜意识里感觉

这是一家挂着软件开发的名实则写外挂的公司,于是我毅然面试,结果很顺利通过,当时我还暗自庆幸原来东北也有发展,但是后来我发现整个团队里除了我了解整个产业链

的流程步骤以及如何调试、编写外挂之外,其他人都一概不知,更甚者开发部加上我只有4个人。不过当时我也没有别的办法,既来之,则安之,况且薪水还不低。在这个公

司一呆便是半年,也写了一款国外游戏的外挂,但是后期因为老板热衷于别的项目,把我的工资突然降了下来,没有办法,因为这个项目我做了大半,我自己内心里有一股劲

必须要做出来,哪怕不赚钱。剩下的一个月里各种费用我自己掏腰包,账号啊,代理啊什么的,就这样两个月过去了,做好了,又出现了新的问题——封号!这种问题算是这

个行业里最忌讳的问题,就等于你解决不了的话那前期的工作完全没有用处。我们辛苦的测试了几百的账号,各种方式的修改,仍然无法逃避掉游戏公司的检测,直到前几天

无奈放弃了这个项目。
  现在又处于一个浑浑噩噩没有目的的状态,这几天一直在想以后要如何发展,昨天接到大连东软的面试邀请,很诚恳的打了两次电话,回家和父母女友谈,他们虽然没有

强烈反对,但也抱着不同意的态度,我本人更是很迷茫。我自身总有一股冲劲,感觉我一定可以做出些让人感叹的事情,所以一直以来我在尝试着写一款内核调试器和反汇编

引擎,虽然目前面临的困难很多,时间又很少,但是我总是把这东西当成我的一个目标,一个满足我成就感的目标。可是,各位看官,我现在又处于一耳光山穷水尽的状态,

我知道,内核调试器和反汇编引擎不是一天两天完成的,就算完成了,我也没有想法拿去赚钱,反倒想开源。再此我也诚恳的请大家帮我出出主意,帮我想想办法:
第一,我要不要继续在这个公司从事这个工作,我本人其实不太愿意,项目没发展,公司人少,就4个,其中两个是做按键精灵的,没有能学习的环境。
第二,我是不是要到经济发达的地方谋求一份工作,还是能够继续留在东北地区慢慢发展。
第三,我能够在继续从事外挂这个擦边球的行业。
第四,我一直对自己不是很自信,感觉不是科班出身公司会另眼相看,不知道是不是这样的。
第五,对于家庭问题的解决方法,我的快速圈钱的策略是不是从根本上就出发错了。
以上问题,真的很诚恳的麻烦大家帮忙指点条明路,哪怕是批评我也行,我不怕骂,能告诉我正确的东西的人我都会认为是我人生中的良师,再次谢谢大家了。

------解决方案--------------------
看你写那么多,忍不住回复几句:小伙子,你真挺牛的,主要是你对编程有热情、肯学习也有能力,自然可以有大的进步空间,是不是科班算什么!一般公司在招应届生时,没的看才看学校、专业之类的,真正工作起来,只看你能不能出活,有没有潜力。
不过说点逆耳之言,你真该找一个相对大的、正规的公司做起点,那里周围有的是能人、明白人,你可以很快地了解有前途的技术和方向,更快地提高自己,当下看似钱挣得少些,但只要发展起来了,这不会是问题。做这种灰色产业,开始可能能挣大钱,但以后呢?永远打一枪换一个地方?偶尔挣点外快另当别论。
祝你好运!
------解决方案--------------------
小伙子不错,能过HS了,现在要做通用的过游戏保护我看基本都是重加载内核,转移SSDT,SSDT SHADOW,自己实现异常分发,太多了,还是有难度,至少比很多应用层开发难多了,做外挂确实要求挺高的,话说游戏封号确实挺郁闷的,话说TX也给我打电话了,可惜要去深圳,而且当时自己又是半吊子水就没去:)
------解决方案--------------------

第三,我能够在继续从事外挂这个擦边球的行业。
其实从技术的角度来说、攻防其实是一体的。
技术本身没有好与坏,有好坏之分只是人的思维。(建议早日从良吧)

第四,我一直对自己不是很自信,感觉不是科班出身公司会另眼相看,不知道是不是这样的。
我就是科班
科班 70-80% 都是菜鸟,都是上大学之后才学编程的。
要说科班有优势就是只是课程的全面性(深入性严重不足)




------解决方案--------------------
我跟楼主经历还是比较类似的,也是毕业就进了外挂公司,不过我虽然是一本院校毕业,却根本跟计算机专业不搭边,是艺术类的,在学校就帮同学装装系统,搭个服务器什么的给同学玩,毕业之后也完全不懂编程,进了外挂公司才开始正式的学习c++和汇编,我到离职的时候做外挂的实力也不到你现在的1/10,但是我觉得没什么好自卑的,不知道是因为你接触的IT方面的人少还是接触的人都太牛,起码我周围很多的程序员给我的感觉很稀松,我一个外门汉随便学了一两年也不比他们差。而且即使比不上人家,自卑也改变不了什么,还不如昂着头稳扎稳打的学习。

跟楼主不同的就是我不希望我做的事情是人人喊打的,所以虽然我很喜欢往底层挖掘,但是我还是放弃了自己的职位去给公司做后台系统,先做web后台,然后接触html css javascript等前端技术,在公司一年之后我已经专职做前端了,现在离我毕业已经快5年了,去年离开了原来的公司(在外挂公司做前端做了三四年再不跳就有点怪异了),现在也混成了个前端的小头目,我想跟楼主分享的就是如果你确实喜欢你做的东西,那就继续努力,去做安全行业的东西,如果觉得可以改行,只要你有劲头,换个行业也并不难,特别是你已经掌握了系统底层的东西,基本上在哪都能用得到,即使用不到语法,编程语言的执行原理总是不会变的,编程功底总是不会丢的,解决问题的能力是不会变质的,把胸怀放开,随心走。