人们的工作不仅是为了生存而是发挥自己多的想像空间`而不是造人家设计好的路子进行编码更多的是个人的“艺术”表现手法```
人们的工作不仅是为了生存而是发挥自己多的想像空间`而不是造人家设计好的路子进行编码想在计算机领域混口饭吃,还是好好学好这些基础的东西吧,当有一天越来越多的人会了你学的那些框架的东西,你就等着失业吧,那时真的是在农村找个初中毕业的,让他学几天,他也可以写代码,不过仅仅是个coder。
api我从来不刻意背,遇到问题的时候我再去找api手册。但抽象问题的能力是查不来的,虽然这说到底是智商问题,但通过后天培养还是能提高的。而“软件设计”首先就是要分析并抽象问题,然后才是具体的解决方法。所以入门要从分析入门,然后细化到一个具体的地方再加以深造。比如算法、比如UI人性化等等。
再比如我有一个开发web站点的新方法的设想,但其中一些细节并不是我的知识领域内的东西,不过我可以再去学习那个方面。如果要先学算法等基础,再往上学,恐怕我这辈子都想不出来这个新方法。
计算机世界很神奇,甚至可以说没有做不到,只有想不到。先想再做嘛。
开发过的软件也都不简单,包括关键的企业级分布式应用,所谓关键是因为涉及到对钱的操作
目前的身份是SE,月薪接近10k,不怎么加班,并且没觉得短期内有失业的危险。。。
我很敬佩那些作基础研究的人,但也不觉得做应用开发就低人一等,技术没有高低之分,做技术的人却层次不一,你不会觉得Spring之父也是高级打字员吧?
学习新知识的能力最重要,不要以为基础的东西学好了就万事大吉,有这种心态的人危险了!
What we study in university is to be a computer scientist.
what is scientist?
Do sth that someelse has not yet done in theory.
What is engineer?
Do sth in a good way but in theory, it is already workable and doable.
with the times , the science will convert to engineer.
But chinese education normally confuses two stuff in a chaos.
Like I mentioned before, computer science is a layer theory.
you must know you are which layer's programmer.
what we study in school is called fundamental. but finally you will argue what the hell the compiling theory does with the upper level part such as XML, code generation blabla....
That is the chinese education obsoleted reasons.
The lower layer stuff which u study in school seems useless in application level programming but some methodology are still reused in the upper level. That helps you to well understand the new technology.
OO design is one of the fundamental also. but lots of university are busy with stocks now. definitely not take teaching seriously.
if you missed time to study these fundemental, just let it be but one thing is still worth reading, design pattern, parallel programming design
世界在发展...分工越来越细致...也许以后有名称叫做oo家或者算法家
完全是看你走哪一条路...
对操作系统,中间件等底层开发来说,可重用性和可扩展性更重要。
应为他们要被多种应用程序使用,并且寿命也比应用程序长。
而应用程序大部分是一槌子买卖。虽然Banq反复强调软件是有生命的。但是大家都知道,软件是不是一槌子买卖是由商业利益决定的。大部分软件的寿命远远小于OS。
而且相对于软件设计师而言具建筑设计师的例子并不合理。建筑设计师只做外观设计,相当于软件中的UI设计。而建筑的结构设计是由土木工程师完成的。很难想象一个土木工程师完全不懂材料。
机械设计师的情况也类似。虽然机械设计师并不负责如何生产出一个零件(这由工艺师负责)。但是设计师在设计时不考虑工艺问题的话,就会造成生产成本大大增加,甚至完全造不出来的情况。
软件设计师的地位相当于土木工程师,机械设计师。不懂底层的话,运气好的话就是成本上升,性能低下,运气差的话,就彻底搞糟。
观点:专业决定你的基础(banp老师的支持者)
曾经我们叫计算机专业
现在我们叫计算机软件专业
今后我们会不会叫计算机软件对象使用专业(或对象编辑专业)呢?
社会的分工几千年前就开始了,计算机软件的工分也从开始就有了,OO的思想是软件新一层次的分工标志
我们有向汇编方面发展的人才,有向C方面发展的人才,有向java方面发展的人才
这叫“专业”,无非是各施工其职罢了,这里我们没有任何争议
你是什么专业的,你要确定你的专业,并确定与你专业相关的知识进行学习。如果你想写对象那么请把现在所谓的软件基础学好(数学,数据库,数据结构等等),再如果你不想写对象只想用对象就请你学好你的基础(语法、对象的用法。什么数据库、数据结构、数学了解了解就好了因为你的重点不在这里)
那我们看一个例子:
美化照片的工作大家都知道吧
美工人员-》使用某某照片制作工具-》美化照片-》导出经过美化的照片
这里我们的美工人员需要知道工具里是如果读入照片的吗?不需要
需要知道工具里是怎么处理照片的吗?不需要
需要知道工具里是怎么导出照片的吗?不需要
OO的思想就是面向对象的编程思想
我们美工人员其实也是一种面象对象的开发她开发出了一个很棒的对象不是吗?
一幅美丽的照片里面一个纯情的少女
其实OO的思想早就有了,我们只是没有分化出来而已
做为对象使用者的我并不懂数据结构如下:
一个对象有N个属性(name,age.....) 这个对象的名字为person,它有get/set的方法
age 的数据结构是从数据库中取出出生日期然后减去现在的日期
在这里OO的编程者它构造了person这个类想取出age的值
直接person.getAge();//OK
请问这个编程者需要懂得数据结构吗? 不需要,她需要懂得的是这个类怎么用,OK?
OO是编程的思想它没有说什么东东不重要(如:所谓的基础,基础当然重要啦,但是这是你的专业吗?如果是务必学好它,否则有兴趣就看看)
我个人认为随者软件编程的发展今后将把学习oo思想的人分为两个流
一、对象编写者:需要懂得数据结构、数学知识等等,面向过程的程序员所需学的
二、对象使用者:需要学习类的用法(如SDK的类库,学j2se你会用类库吗?)其它可以莫无关心,如果不嫌累大可以研究类的数据结构(当然是吃饱了撑者的人做的事)
“专业决定你的基础”
说主题:j2se的基础的重要性在于:理解OO的思想,学习SDK类库的用法,闲来无事者看看类结构,和你爱的人一起学习那乏味而有趣的数学<这可是美事呀>:)
在下QQ:55380559哈哈哈 :)喜欢的交个朋友
专业在于永无止尽的追求!
我觉得这道题目出的就不好,好的路线设计,城市任意两点之间,很容易实现最多二次换车到达,这时候甚至都不需要什么算法。如果你说你们城市有些地方之间不能二次转通,那你不如先去解决这个问题。