【Java分享客栈】Java程序员为争一口气熬夜硬刚CSS实现掘金首页
前言
如果我做不了最厉害的Java工程师,那我就做Java工程师中最厉害的前端工程师。
前段时间,我默默给自己又喂了这碗心灵鸡汤……
我不是很厉害的Java工程师,哪怕我已经工作八年,我依然觉得自己和顶尖工程师存在不小的差距,但我有个优点,就是对待学习乐观且执拗,我会经常暗示自己前进,哪怕我已经寸步难行。
我从参加工作三年后就意识到了一件事,我不是特别聪明有悟性的人,我对技术领悟的慢,哪怕我经常熬夜也解决不了工作中一些十分简单的问题。
曾经有个女孩对我说过:如果你不是特别幸运,那就请特别努力。这是我的人生格言,你如果想不断激励自己,那么你也需要有一个。
所以我从那时也给自己定下了一句人生格言:如果我做不了大佬,那我就做大佬的跟屁虫。
之后这些年我一直都是如此,学别人的,总结别人的,最后转变成自己的。
前端是后端的未来
在讲事情起因之前,我想先以多年Java程序员的角度来聊一下前端
我对前端一直都保留着十分敬畏的态度,因为它把最直观的设计动态变现了,仅仅是通过一些CSS和JS代码就能实现许多好看丰富的效果。
以前的工程师是根本不分前后端的,后端java,前端直接拷贝粘贴,敲敲JQuery,就能把页面和数据都做出来,后面的bootstrap出来之后,带来了更多前端的理念及变革,随后而来的LayUI更是陪伴了我许多年。
然好景不长,时代的进步决定了IT行业的发展速度,前后端终究自成一家,Angular、react、vue的出现直接迎来了新的革命,layUI的作者也不得不面对现实关闭官网走向开源,成为了JQuery时代的记忆,一时令我失望且黯然神伤。
我从成为Java程序员初始,就没认真写过css,但凡能复制绝对不手写,但凡能实现绝对不求甚解,甚至我当年的JQuery熟练程度远高于css,到现在我都没想明白为什么。
即使前后端分离了,等到vue出现后,我依然保持着虚心的态度去学习,认为这是后端程序员必修课,如果冒然放弃一定降低竞争力。
可我的css,这八年时间过去依然停留在初级阶段,从未提升过。
直到最近,我终于因为工作原因受够了部分前端工程师的傲慢。
事情起因
中小型的互联网公司中,前端往往承担着比后端更大的责任,至少我呆过的两家公司,都是前端一两个,后端一大把,这就注定了在这样的公司中,前端拥有特殊的地位。
自从前端自成体系后,我不是第一次在工作中受到少部分脾气较大的前端工程师带来的郁气了,不论是画页面还是联调接口,竟然处处涌现着高人一等的感觉,我差点以为和自己联调的不是中国人是米国人。
直到上周的一次例会,因为工作任务逐渐繁重,前端确实压力较大,主管提出让我这个后端承担一小部分前端的任务,结果前端瞬间炸毛了,以为会对他的工作价值造成威胁,什么“他一天连个页面都画不出来”、“他会把前端工程写的乱七八糟我们还要善后”之类的话语蜂拥而来,那梗着脖子发飙的样子给我很大的冲击。
我不喜欢把情绪带到工作中,但不代表我没有任何脾气,这玩意儿能忍??
尤其是说我一天连个页面都画不出来,简直是诛心之言!我忍得了吗??我忍了,因为我确实不会。
俗话说,人活一口气,树活一张皮,我这些年从未停止过学习,我叫你学Java你学的会吗?累不死你!但是你叫我学前端我一定比你学Java轻松的多。
所以我含着这口气,说什么也要在css上有所突破,马上列出计划就开干了。
学习方法
Java程序员若想立马精通css,是十分困难的,难的不是css,是Java,你没听错,就是因为Java要学的太多,注定了你在css这种不太关心的技术上想有成就很难,这单纯就是个精力的问题。
可Java程序员也有自己快速学习css的方法,我这里根据自己这一周所学的经验分享给大家:
1)、只掌握最基本的语法,比如width、height、margin、padding、color、border等等类似这样的语法,一些偏门的语法可能很有用,但你花时间深入学习不值得,放到以后边搜边学;
2)、先从布局开始,尤其是弹性布局flex语法,我可以这么说,对Java程序员最有用的就是flex语法,不管PC端还是移动端都适用,所以我建议flex语法着重学习,学到最后你会发现万物皆可flex;
下面是我学习总结的flex笔记截图,你也可以像我这样对重点知识进行记录,因为Java程序员很容易忘记这些东西,可以反复观看最终形成永久记忆。
3)、掌握Photoshop少量用法,主要用来计算间距或宽高等元素,以及使用吸管获取颜色参数,刚开始学习时,直接把某网站页面截图放到Photoshop里面,直接参考别人的取值和颜色搭配是最方便实用的选择;
计算间距:
取背景色:
4)、学会F12调试,主要用来参考网站及平台的样式,许多可以拿来复用,同时能学到很多CSS样式写法。
5)、最好最快速的CSS学习方式依然是模仿,找一个网站,模仿里面的某个页面进行CSS仿写,这种方式不仅能快速进入状态,还能学到很多东西,最重要的,能直接做出效果你会很有动力。
我的成果
我根据上述的学习方法进行了快速学习,尤其是对flex语法进行了重点学习,然后就直接截取了掘金的首页,开始仿写。
在周末放假的时间,含着这口气,从晚上8点开始,一直写到凌晨4点多,终于完成了我八年来首次认真学习CSS的成果。
也许很多前端看到了会取笑我吧,一个简单的首页竟然花那么多时间完成,可我却感到很开心,我觉得我从这时候开始,真正对如何画页面有了充分的认识,也更确定了自己以后的方向:要努力做Java工程师中最厉害的前端工程师。
后记
分享这篇文章的初衷,是希望那些像我一样彷徨过的Java程序员或其他程序员都能够寻回自我,一点点突破自己,怕的不是学不好,怕的是你不学啊。
我仿写掘金的页面及样式文件会分享出来,小伙伴们可以照着参考下,有兴趣的也可以试着仿写下首页或其他页面,里面每一行css都是我手敲的。
链接: https://pan.baidu.com/s/1QQkwcpNU8cOVjaGjpWh5dA?pwd=jtit
提取码: jtit
我之后会专门花时间一边学习积累一边手写一个后台管理系统,纯页面不包含业务功能的那种,因为我不喜欢包含杂七杂八的内容,就喜欢干干净净的架子,业务我自己去写。同时也会出一个包含vue及elementPLUS的版本,最重要的是,我会把文档写好供大家学习,而且通过文章来一步步阐述实现方式,带着大家一步步实现效果。
感兴趣的小伙伴儿可以提前关注下本人哦~
本人专注分享工作中的趣事及经验,觉得有一滴滴帮助的话麻烦点个推荐吧啦吧啦~~
【Java分享客栈】Java程序员为争一口气熬夜硬刚CSS实现掘金首页的更多相关文章
- 【Java分享客栈】我为什么极力推荐XXL-JOB作为中小厂的分布式任务调度平台
前言 大家好,我是福隆苑居士,今天给大家聊聊XXL-JOB的使用. XXL-JOB是本人呆过的三家公司都使用到的分布式任务调度平台,前两家都是服务于传统行业(某大型移动基地和某大型电网),现在 ...
- 【Java分享客栈】SpringBoot整合WebSocket+Stomp搭建群聊项目
前言 前两周经常有大学生小伙伴私信给我,问我可否有偿提供毕设帮助,我说暂时没有这个打算,因为工作实在太忙,现阶段无法投入到这样的领域内,其中有两个小伙伴又问到我websocket该怎么使用,想给自己的 ...
- 【Java分享客栈】超简洁SpringBoot使用AOP统一日志管理-纯干货干到便秘
前言 请问今天您便秘了吗?程序员坐久了真的会便秘哦,如果偶然点进了这篇小干货,就麻烦您喝杯水然后去趟厕所一边用左手托起对准嘘嘘,一边用右手滑动手机看完本篇吧. 实现 本篇AOP统一日志管理写法来源于国 ...
- 【Java分享客栈】SpringBoot线程池参数搜一堆资料还是不会配,我花一天测试换你此生明白。
一.前言 首先说一句,如果比较忙顺路点进来的,可以先收藏,有时间或用到了再看也行: 我相信很多人会有一个困惑,这个困惑和我之前一样,就是线程池这个玩意儿,感觉很高大上,用起来很fashion, ...
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...
- Java 常用排序算法/程序员必须掌握的 8大排序算法
Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...
- java 书籍推荐 JavaEE程序员必读图书大推荐
java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...
- 在Java大环境下.NET程序员如何夺得一线生机
先来看一组数据,从某招聘网站直接检索3-4w的岗位,会看到Java与.NET社会需求量的巨大差异,这里就不再对比高薪的岗位了,.NET的高薪岗位更是少的可怜: 笔者从业十余年,一直是在.NET圈子 ...
- 【Java分享客栈】一文搞定CompletableFuture并行处理,成倍缩短查询时间。
前言 工作中你可能会遇到很多这样的场景,一个接口,要从其他几个service调用查询方法,分别获取到需要的值之后再封装数据返回. 还可能在微服务中遇到类似的情况,某个服务的接口,要使用好几次f ...
随机推荐
- Solution -「JOISC 2021」「LOJ #3491」道路建设
\(\mathcal{Description}\) Link. 平面上有 \(n\) 个互不重合的点 \((x_{1..n},y_{1..n})\),求其两两曼哈顿距离的前 \(m\) 小值. ...
- 这个杀手不太冷-kill家族
文章目录 kill killall pkill 跑路小技巧 kill家族: kill: # 删除执行中的程序或工作 killall: # 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程 pk ...
- mysql 查询附近N公里内数据
mysql 查询一个地点(经纬度) 附近N公里内的数据.(根据一个地点的经纬度查询这个地点方圆几公里内的数据)1.创建测试表 CREATE TABLE `location` ( `id` int(10 ...
- CoRR 2015 | MXNet: A Flexible and Efficient Machine Learning Library for Heterogeneous Distributed Systems
MXNet是一个支持多种编程语言的机器学习库,使用MXNet可以方便地实现机器学习算法,尤其是深度神经网络.通过嵌入在宿主语言中,它将声明式符号表达与命令式张量计算相结合.它提供自动求导以计算梯度.M ...
- 重点收藏!BI数据分析工具哪家强?
信息爆炸时代,大数据晋升为一个时髦词汇.不论是在哪个行业领域,大数据分析成为各企业备受推崇的决策工具.对于海量数据的挖掘,有助于统计事情发生的概率,帮助人们计算做某些事情成功的几率.企业正在数据的海洋 ...
- 万能BI工具时代,聊天记录也能做数据分析?
最近知乎上有个问题火了: 看了高赞的一些答案,最大的感受就是:婚前"泰国.新加坡.印度尼西亚"婚后"玩具.幼儿园.全部都是娃".作为一个适龄青年,也突然对自己结 ...
- 【C#基础概念】vs2019 代码段
打开记事本,输入下面代码,然后把文件后缀改为.snippet .然后通过vs2019 工具>代码段管理导入. <?xml version="1.0" encoding= ...
- java集合框架中contains(),containsKey()和containsValue()的用法:
List集合的contains()方法用于判断集合中包不包含某个元素,返回值是boolean. Map集合的containsKey()和containsValue()方法和上面的相同. 示例: pub ...
- .NET 6 在小并发下如何生成唯一单据号
一.场景介绍 小并发下要解决生成单据号的问题,会碰到哪些问题呢?,接下来让我们一探究竟[这是小并发的解决方案,大家有更好的做好可以一起讨论分享]. 之所以叫小并发:是因为确实是小并发场景的应用模式,一 ...
- 第九周shell脚本编程练习
转至:http://www.178linux.com/88838 1.写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin):分别这两 ...