新的学期即将开始,计算机学院各大工作室也陆续会在本学期开始招新。但是想要加入工作室,我们需要一定的知识储备,并顺利通过所有的考核。此刻的你也许还很迷茫,对工作室的各大方向和和该如何学习都还不够了解。
为此,我邀请了数智工作室各方向的负责人共同完成这篇推文,下面将以数智工作室的五大方向为例,给大家说明各方向是做什么的和针对初学者做一个学习推荐。
UI即用户界面设计,也称人机界面。最普遍的应用是在软件开发中,指程序的用户操作界面设计。UI在网站界面、软件界面、手机应用界面等多图形用户界面的设计都属于UI设计。学习UI将需要熟练使用PS
,AI
等设计软件,同时也需要学习动效建模和用户心理学,UI是和用户最直接接触的环节,优秀的UI能最大程度提高用户体验,最大化实现功能的应用。
UI其实早已出现在我们生活的方方面面,当我们刷着手机,看着电视,在互联网上的时时刻刻我们都接触UI作品,小到开机界面大到软件流程,优秀的作品甚至能产生品牌效应,通过优秀的设计实现培养强大的用户粘度,最有名的就是苹果的设计,通过精益求精less is more的前期设计,引领一波设计风潮。那,如果要入门UI设计,该从哪里开始呢?
一、入门准备
你是否热衷于各种好玩新奇的产品呢?
你是否平时喜欢使用各种各样的产品并研究它是否好用呢?
你是否更容易发现使用中的各种问题,并积极想办法解决它呢?
你是否充满各种灵感和创意?
你是否喜欢思考问题,清晰的罗列各种解决方案,并寻找其中的逻辑关系而乐此不疲呢?
在绘制草图的时候,你是否有一种莫名的兴奋感呢?
你喜欢跟人沟通和交流、展示你的想法和创意吗?
如果问题答案大部分是肯定的,那恭喜你!这说明你很适合接触设计类工作,接下来可以进行基本了解,多多观察手机内app页面设计和跳转逻辑,可以开始下一步了解啦。
二、软件了解
UI设计需要熟练掌握基础软件PSAIAE
以及专业UI设计软件sketch
/figma
等。入门可以在B站观看相关视频学习,建议应当了解先着重弄懂每个软件基本功能并熟练使用,再学习较为复杂的效果制作,这样不仅能锻炼好基本功,也更方便在做效果时能更快理解更快掌握,最终实现举一反三的操作。这里推荐GenJi是真想教会你的一系列视频进行软件的入门。
(小建议:软件下载尽量下载较新的版本,此时练习作品也最好建立分类法来归类,方便以后查询)
三、设计了解,学习设计
这个有内容就有点多了,因为是养成思维的必经之路。
比如配色、排版、字体设计三大构成,消费心理学、沟通学,以及思维导图、原型图,还有交互逻辑、规范、切图、了解程序、互联网思维、用户体验,还有一些网络营销都是需要学习的,因为这和产品商业价值有关。当然这些都是后期进阶了,总而言之,多看优秀作品,提高设计审美,到这一步就可以开始尝试创作自己的作品啦!
设计书籍推荐 - 100本改变设计命运的书籍 (shejidaren.com)
数智深度学习组主要以NLP
(自然语言处理)作为总体研究方向,使用知识图谱技术;团队内本科生与研究生可共同学习、讨论,已有本科师兄发表学术论文,参加数学建模比赛取得奖项。该方向更注重当前学术界先进的知识理论,掌握部分基础之后,主要以通过论文的阅读来进行知识补充,如果需要,则会与开发方向的伙伴们进行合作开发。
部分理论知识:概率论,线性代数
,深度学习基础
编程语言基础: python
部分第三方库:
无论是深度学习还是其他相关方向,数据的获取和处理都是十分重要的,有时候世界上现存的数据集或者词库可以满足需求,而有时候更需要自己获取清洗再生成。从这个方向来看,便需要大家掌握以下内容:
数据处理:numpy
、pandas
、re
库…等等
**爬虫:**请求库 request\selenium
; 解析库beautifulsoup\lxml
机器学习:scikit-learn
(熟悉部分经典机器学习算法,掌握查询官方文档会使用即可
tensorflow2.0
以上的库,主要使用其中的keras
进行编程,实现所需的神经网络。※以上内容大部分都可在B站学习,科研道路很长、需要沉得下心,才能有所收获!
前端技术已将深入到人们生活的方方面面之中,在目前互联网时代,只要公司有需要开发互联网产品,包括网站,网页,H5,小程序,APP等等,就需要前端开发工程师岗位,具体的就业方向还可以按公司的技术需求来区分,侧重点各有不同,就业行业随着互联网的发展,已经变得越来越广泛了。
只要你想做,前端几乎无所不能,JavaScript
作为前端的主要编程语言,既可以与UI框架(例如:Vue
、React
、Angular
)结合做业务,、又可以和游戏引擎(例如:Cocos2D-X
、白鹭引擎)结合制作HTML5游戏、还可以结合Node.js
写后台,甚至还可以结合Three.js
创建3D场景。
学习路线:HTML
=> CSS
=> JavaScript
我们建议先从三剑客(HTML
、CSS
、JavaScript
)学起,万丈高楼平地起,坚实的基础能帮助我们在接下来的学习技术之路上走得更稳健。
学习前端,与专业无关、任何热爱技术的人都可以学习,请不要给自己设限。前端的入门门槛并不高,你甚至可以没有编程基础,三剑客的基础知识可以先通过观看视频来学习,b站中任意播放量高的零基础入门前端视频都行。由于前端技术发展很快,视频的内容很有可能已经有些过时了,这时候就可以到MDN
、或W3Cschool
查看最新标准。三剑客中最重要的就是JavaScript
,单看视频只能学会基础用法,想要深入学习就必须要看权威的书籍,如《JavaScript高级程序设计(第四版)》或《JavaScript权威指南(第七版)》,其中前一本现在在网络上已经有电子版可以下载阅读。目前网上已经有很多开放的api接口,如果觉得自己三剑客已经学得不错的时候,可以继续学习Ajax
,然后利用开放的api接口以及原生的三剑客制作一个属于自己的完整的应用程序,体验前后端交互以及独立完成一个项目的感觉,至此,就算是正式入门前端了。
继续深入前端就必然避不开TypeScript
,作为JavaScript
的超集,ts在开发应用级程序上有着无可比拟的优点,学习ts可以直接去看ts的官方文档。
如果你在之前的前端入门阶段都一直在使用原生的三剑客来编写代码,那么学习到这个阶段,你就可以开始去接触三大UI框架(Vue
、React
、Angular
),使用框架能够让我们的开发速度大幅提升,同时使用框架构建项目还可以使文档结构会更加清晰。学习框架可以先通过看视频入门,但是深入了解还是要回归官方文档。
什么是后端?
我们访问网站时,除了一打开就映入眼帘的各色界面,还有隐藏在其中的各种数据,而后端就负责对这些数据进行一系列管理与操作。
后端需要学习什么?
不积跬步,无以至千里;不积小流,无以成江海。在了解和上手Web开发后端之前,需要先掌握最基础的开发能力。
Java
是后端最常用的语言之一,掌握好Java也是最基础的一个环节。JavaSE
后,我们可以逐渐过渡到学习JavaEE
。JavaEE
是一套使用Java进行企业级Web应用开发的大家一致遵循的工业标准。JavaEE
的13种核心技术规范,你就会拥有最基础的Web开发能力。JavaEE
整个体系,你将会了解和掌握后端事务的业务流程、数据库、Servlet
、JSP
等等在开发过程中起着重要作用的技术应用。Git
,了解Git
仓库原理,掌握Git
使用技巧,学会使用Git
管理代码。HTTP
工作原理。(这里推荐《图解HTTP》这本书,对刚入门者非常友好易懂)HTML
、CSS
、JS
)。通过入门阶段的学习,我们已经有一定的能力可以搭建自己的网站了,但是,后端远远不止于此。
maven
学习
在这一阶段,我们更注重开发效率以及模块封装性和性能。我们需要掌握SSM
框架,也就是Spring+
、pringMVC
、MyBatis
集合框架。
学习Spring
时,我们要掌握Spring
的核心思想,IOC
控制反转,了解bean
工厂的强大作用。
学习SpringMVC
将有助于我们了解整个请求在框架中的执行过程,对拦截有更深刻的了解。
学习mybatis
,我们对数据库底层的操作将变得更加简便透明,体验自定义SQL
以及高级映射的简便性。
SSM
框架后,为了让开发更加简便,我们需要简化Spring
繁琐的各种配置依赖,学习SpringBoot
框架。SpringBoot
框架是目前最常用的开发框架,掌握好他,是成为一个后端开发者的必经之路。linux
基础知识,学会配置服务器,部署项目等等知识。redis
等其他类型数据库ssm
框架源码深入理解前期准备:
IDEA
、配置好JDK和环境(常用JDK1.8版本)学习资源推荐:
后端路线图
学习路线
黑马JavaSE
、JavaEE
等系列视频
书籍:《Java核心基础》、《图解HTTP》、《HTTP权威指南》、《深入理解java虚拟机》
Android作为全球第一大的智能手机操作系统,拥有着手机操作系统中最活跃的用户群体和开发者。在当下这个人们重度依赖手机的时代,学习掌握安卓开发技术,一定能为你创造格外的价值。
Android软件的开发包括原生开发和跨平台多端开发,其多样的开发方式能让我们能学到多种开发技术和创造出更多的可能。学习好Android开发,用技术创造艺术。
作为安卓开发者,我们的开发基础就是掌握如何使用Java
语言进行Android原生开发。这时,有的小伙伴要问了,谷歌官方现在不是不推荐使用Java
,转而推荐使用Kotlin
开发了么?为什么我们不直接学习Kotlin
呢。首先,让我们来看一下菜鸟教程中对Kotlin
的定义。Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。Kotlin
语言依旧是运行在Java虚拟机上面的;并且在很多的开源项目中,依旧使用的是Java
,所以我们现在依旧要以Java
为学习基础。
对于Java
学习,我推荐先学会一些基本的Java语言特性及其基本使用再去学习Android开发,如果大家着急上手Android,可以到B站看18年尚学堂的教学视频学习,我们需要学习完多线程即可。下面是视频的链接
(最新)尚学堂 JAVA300集附源码高清版_哔哩哔哩_bilibili
再接下来,我们需要一本好的Android入门书籍或者是学习视频,作如下的推荐
书籍:《第一行代码》第二版 ——郭霖
学习视频:程序猿拉大锯的个人空间_哔哩哔哩_bilibili
在掌握Android基础之后,我们除了实战去复现一些APP,还需要对这项技术进行深入了解;深入浅出,唯有深入,方能浅出。
我推荐大家边阅读**《Android开发艺术探索》**这本书,同时附上一份笔记博客:《Android开发艺术探索》读书笔记_willwaywang6-CSDN博客
同时,我们不断去阅读官方的开发文档也是十分必要的,这个才是最一手的资料。英文阅读也许对我们来说有些困难,但我们不该让它成为我们变得更强的拦路虎
由于原生开发使用到的Java
或是Kotlin
都是运行在Java虚拟机上面的,我们是有必要去学习更多的Java
知识的。如果你还是想看视频学习的话,我还是推荐尚学堂的视频,你可以继续看上面的旧版视频,也可以去B站搜索官方最新版的(使用IDEA开发的)。
相关书籍推荐:《Java核心技术卷》/《Java编程思想》,《深入理解Java虚拟机》
现在谷歌强力推荐Android开发者使用Kotlin
进行开发,很多公司和从业者都已经转向使用Kotlin
进行开发,并且几乎所有的Android大佬的博客代码都是使用kotlin
;不仅如此,由于Kotlin
与Java
100%兼容,语法简介和更加高级等特性,使用Kotlin
去开发Android软件在效率上是有极大提升的。作为Android开发者,我们很有必要去学习如何使用Kotlin
开发软件。
这里推荐的入门书籍是:《第一行代码》第三版 ——郭霖
Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart
语言开发 App,一套代码同时运行在 iOS 和 Android平台(目前 Flutter 已经支持 iOS、Android、Web、Windows、macOS、Linux、Fuchsia)。Flutter的跨平台能力很强,因为它是以自绘UI+原生的方式来实现跨平台技术的,它利用自绘的引擎调用系统API绘制UI。而其他的跨平台技术,例如web APP,需要借助WebView渲染;或者React Native这种js+原生渲染的方式,其需要转化为原生控件;这些跨平台方案的性能都不如自绘UI+原生的方式要好。
使用Flutter开发软件,其优势不仅在于高性能的跨平台运行,其相对于原生开发有着更高的开发效率,Flutter的热重载能帮助我们更好的测试、构建UI、添加功能和修复错误。作为Android开发者,掌握Flutter无疑如虎添翼
学习Flutter推荐的书籍为:《Flutter实战.第二版》;同时,我们需要结合官方文档来学习,逐步复现出Flutter的官方示例APP——Gallery。下面给出Flutter中文网链接,该网站同时还包括《Flutter实战.第二版》电子版的入口和掘金的Flutter社区入口。
Flutter中文网:Flutter中文网 (flutterchina.club)
推荐的博客专栏:Flutter相关_lifeidroid的专栏-CSDN博客
adb是什么,官方文档的解释是这样子的:Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序。顾名思义,就是利用命令行连接设备和调试APP的工具,在开发过程中,我们很有必要去掌握它。网上很多教程教你怎么配置路径和使用电脑的命令行工具使用,其实最新版的Android studio中,只要安装配置好SDK,直接使用Android studio下栏的命令行工具Terminal就可以使用了,你可以直接输入adb version
查看一下版本和路径。下附官方文档链接和常用命令博客链接。
官方文档:Android 调试桥 (adb) | Android 开发者 | Android Developers
博客:聊一聊Android开发利器之adb - 掘金 (juejin.cn)
劝退客户端?
在你考虑客户端这一个学习方向的时候,相信会有很多劝退的言论。我来谈一谈我对这个方向的看法。
js
带来的热更新也会降低APP的执行效率。所以,单纯使用前端技术写出来的跨端APP是有较多局限性的,客户端开发被替代是无稽之谈,熟悉原生开发的客户端开发者是必不可缺的。加入工作室的付出和收获?
没进工作室该怎么规划学习和提升?
想要加入工作室,是需要经过层层考核的,那这意味着被淘汰的同学不好么?并不是的,工作室的考核是双向选择,千万不要因为这一次的不如意而否认自己,只不过是这一步稍微走慢或是走错罢了。
工作室的考核周期是比较长的,最难的其实是坚持,在这一路的坚持中,无论结果如何,你都已经收获很多,未来的学习中,依旧需要保持在考核阶段对技术的热忱和干劲。掌握上面所写的基础已经有能力去参加工作室考核了,再接下就可以来按着顺序去学习进阶和更多的技能部分的内容。学习过程中,我还有一些个人建议:
issue
,加入业内大佬的Q群讨论提问等这些方式解决我们的困惑。当然啦,当我们遇到我们懂的知识,也需要做一个爱好分享的好心人。关注数智工作室,随时留意我们的招新动态和硬核分享