2018马上就要走向尾声了,在这辞旧迎新的日子里适合发表一些感慨,回顾这一年走过的路和这些年的历程,然后展望一下2019年以及往后的时光。
2018年,离开呆了好多年的厦门来到深圳,节奏更快了,竞争也更大了,但是水平也可以提升很快了。一线城市有很多高手可以交流学习,但是你得想好要学什么、怎么去提问,不能问太低级的问题,高手愿意回答你问题也是需要时间的,所以要把问题准备得充分一些具体一点。还有接触新项目先去看文档,到网上找找有没相关的解决方法。希望你能去问google而不是BD,去问Stack Overflow而不是BD,这是在网上看到的一句标语,很有个性,也很好用。
2018学了很多Linux运维的技能,几个命令就能让你提升很多的开发速度;2018学了全球最流行的PHP框架Laravel,还用它搭建了电商系统,包括高性能无限级分类、众筹商品管理、众筹商品下单逻辑、众筹商品结束逻辑、使用分期付款支付订单、计算分期付款逾期费、分期付款订单的退款、给商品增加属性、使用 Elasticsearch 重构商品搜索模块、分面搜索、相似商品查询(类似于亚马逊的『商品推荐』功能)、Elasticsearch 的索引迁移、秒杀商品管理、秒杀商品下单逻辑、秒杀接口性能优化、编写部署脚本、多机部署实现负载均衡等。
2018参与了ERP的制作与实施,感受了它复杂的业务和缜密的逻辑,企业正是需要建立完善的系统才能做大做强走得更远!肯德基麦当劳等那些大型企业哪个没有自己一套健全的系统来支撑她们的成长?把那些流程正规化、系统化、电子化,减少时间成本/提高效率不正是资本寒冬中企业所渴求的吗?
回望这些年的折腾
09 - 10年 第三方博客平台
那时刚从学校出来,还带着一点文艺气息,喜欢发表一点自己的思想,那段时间不定时更新了一些文章,自我感觉有些成就感,可惜后面那个网站改版下线还是怎么的,好像是博客中国,后面账号密码都忘记了。
那时还接触了淘宝店铺,感觉好神奇,居然可以在业余时间通过网上卖东西赚了点小钱,虽然不多但还是很兴奋。年轻气盛想着做点更宏伟的事情就没继续经营了,如果坚持到现在至少也有皇冠了吧?
10 -13年 Zencart、Magento、Wordpress、Drupal、Joomla
那段时间从事外贸行业,通过Zencart、Magento自建站建商城,做好站内优化,在第三方博客、论坛等平台发布外部链接提升排名。还用Wordpress、Drupal、Joomla搭建博客站引流,然后把流量导给商城进行转化。那时候谷歌排名相对比较容易做上去,可是支付通道不是很稳定,账号被冻结,有点心灰意冷。加上一些其他因素后面就转战国内市场了。
13 - 18年 Dedecms、帝国cms、ThinkPHP
机缘巧合进了一家比较大型的集团,从dedecms的改造到帝国cms的深度开发,从移动网页加速器MIP改造到熊掌号搭建,从单站到CI框架多站管理系统,从Excel批量操作到ThinkPHP营销系统的开发,从不算特别酷炫的PPT到逻辑清晰的思维导图制作,从公众平台二次开发到TP后台API开发,从https部署到小程序上线,一路走来,踩了不少坑,也填了很多坑,都记录在这个博客里www.cnblogs.com/ytkah,满满当当地记录了5年3个月,总算有了一点小成就,在465228个开发者博客中排第262位,感谢各位一直以来对我不离不弃的支持,我会继续记录点点滴滴,我们一起成长,一同进步!
展望2019及未来,移动互联网将继续进化,APP还是一个重要的承载体,虽然流量都被全球各大科技公司瓜分,但是守住细分领域自己一亩三分地还是很有必要的,积累用户,做好服务,变现逐步!Webapp可能作为一个衍生品得到广泛发展。它们共同的点是通过API来连接,所以写好接口才是硬道理。
Python的运用。大数据经常被人谈及,数据从何而来?通过各个平台、app、网站数据的收集,分析,过滤,生成报告,这些都可以用python来处理,并且有很多成熟的库可以直接用了。那还不赶紧深入得学习?
AI人工智能。最了解你的以后可能不是你自己或别人,因为机器更懂你!让AI帮你处理问题比你自己做得更好!
Fighting!!!
df = pd.read_csv('https://raw.githubusercontent.com/chrisalbon/war_of_the_five_kings_dataset/master/5kings_battles_v1.csv')
df.head()
name year battle_number attacker_king defender_king attacker_1 attacker_2 attacker_3 attacker_4 defender_1 defender_2 defender_3 defender_4 attacker_outcome battle_type major_death major_capture attacker_size defender_size attacker_commander defender_commander summer location region note
0 Battle of the Golden Tooth 298 1 Joffrey/Tommen Baratheon Robb Stark Lannister NaN NaN NaN Tully NaN NaN NaN win pitched battle 1.0 0.0 15000.0 4000.0 Jaime Lannister Clement Piper, Vance 1.0 Golden Tooth The Westerlands NaN
1 Battle at the Mummer’s Ford 298 2 Joffrey/Tommen Baratheon Robb Stark Lannister NaN NaN NaN Baratheon NaN NaN NaN win ambush 1.0 0.0 NaN 120.0 Gregor Clegane Beric Dondarrion 1.0 Mummer’s Ford The Riverlands NaN
2 Battle of Riverrun 298 3 Joffrey/Tommen Baratheon Robb Stark Lannister NaN NaN NaN Tully NaN NaN NaN win pitched battle 0.0 1.0 15000.0 10000.0 Jaime Lannister, Andros Brax Edmure Tully, Tytos Blackwood 1.0 Riverrun The Riverlands NaN
3 Battle of the Green Fork 298 4 Robb Stark Joffrey/Tommen Baratheon Stark NaN NaN NaN Lannister NaN NaN NaN loss pitched battle 1.0 1.0 18000.0 20000.0 Roose Bolton, Wylis Manderly, Medger Cerwyn, H… Tywin Lannister, Gregor Clegane, Kevan Lannist… 1.0 Green Fork The Riverlands NaN
4 Battle of the Whispering Wood 298 5 Robb Stark Joffrey/Tommen Baratheon Stark Tully NaN NaN Lannister NaN NaN NaN win ambush 1.0 1.0 1875.0 6000.0 Robb Stark, Brynden Tully Jaime Lannister 1.0 Whispering Wood The Riverlands NaN
# 创建图形
plt.figure(figsize=(10,8))
# 创建散点图
# 298 年的攻击方大小为 x 轴
plt.scatter(df['attacker_size'][df['year'] == 298],
# 298 年的防守方大小为 y 轴
df['defender_size'][df['year'] == 298],
# 标记
marker='x',
# 颜色
color='b',
# 透明度
alpha=0.7,
# 大小
s = 124,
# 标签
label='Year 298')
# 299 年的攻击方大小为 x 轴
plt.scatter(df['attacker_size'][df['year'] == 299],
# 299 年的防守方大小为 y 轴
df['defender_size'][df['year'] == 299],
# 标记
marker='o',
# 颜色
color='r',
# 透明度
alpha=0.7,
# 大小
s = 124,
# 标签
label='Year 299')
# 300 年的攻击方大小为 x 轴
plt.scatter(df['attacker_size'][df['year'] == 300],
# 300 年的防守方大小为 x 轴
df['defender_size'][df['year'] == 300],
# 标记
marker='^',
# 颜色
color='g',
# 透明度
alpha=0.7,
# 大小
s = 124,
# 标签
label='Year 300')
# 标题
plt.title('Battles Of The War Of The Five Kings')
# y 标签
plt.ylabel('Defender Size')
# x 标签
plt.xlabel('Attacker Size')
# 图例
plt.legend(loc='upper right')
# 设置图形边界
plt.xlim([min(df['attacker_size'])-1000, max(df['attacker_size'])+1000])
plt.ylim([min(df[www.douniu157.com'defender_size'])-1000, max(df['defender_size'])+1000])
MatPlotLib 中的栈式百分比条形图
%matplotlib inline
import pandas as pd
import matplotlib.www.gouyiflb.cn pyplot as plt
raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'pre_score': [4, 24, 31, 2, 3],
'mid_score': [25, 94, 57, 62, 70],
'post_score': [5, 43, 23, 23, 51]}
df = pd.DataFrame(raw_data, columns = ['first_name', 'pre_score', 'mid_score', 'post_score'])
first_name pre_score mid_score post_score
0 Jason 4 25 5
1 Molly 24 94 43
2 Tina 31 57 23
3 Jake 2 62 23
4 Amy 3 70 51
# 创建带有一个子图的图形
f, ax = plt.subplots(1, figsize=(10,5))
# 将条宽设为 1
bar_width = 1
# 条形左边界的位置
bar_l = [i for i in range(len(df['pre_score']))]
# x 轴刻度的位置(条形的中心是条形标签)
tick_pos = [i+(bar_width/2) for i in bar_l]
# 创建每个参与者的总得分
totals = [i+j+k for i,j,k in zip(df[www.taohuaqing178.com 'pre_score'], df['mid_score'], df['post_score'])]
# 创建每个参与者的 pre_score 和总得分的百分比
pre_rel = [i / j * 100 for i,j in zip(df['pre_score'], totals)]
# 创建每个参与者的 mid_score 和总得分的百分比
mid_rel = [i / j * 100 for i,j in zip(df['mid_score'], totals)]
# 创建每个参与者的 post_score 和总得分的百分比
post_rel = [i / j * 100 for i,j in zip(df['post_score'], totals)]
# 在位置 bar_1 创建条形图
ax.bar(bar_l,
# 使用数据 pre_rel
pre_rel,
# 标签
label='Pre Score',
# 透明度
alpha=0.9,
# 颜色
color='#019600',
# 条形宽度
width=bar_width,
# 边框颜色
edgecolor='white'
)
# 在位置 bar_1 创建条形图
ax.bar(bar_l,
# 使用数据 mid_rel
mid_rel,
# 底部为 pre_rel
bottom=pre_rel,
# 标签
label='Mid Score',
# 透明度
alpha=0.9,
# 颜色
color='#3C5F5A',
# 条形宽度
width=bar_width,
# 边框颜色
edgecolor='white'
)
# Create a bar chart in position bar_1
ax.bar(bar_l,
# 使用数据 post_rel
post_rel,
# 底部为 pre_rel 和 mid_rel
bottom=[i+j for i,j in zip(pre_rel, mid_rel)],
# 标签
label='Post Score',
# 透明度
alpha=0.9,
# 颜色
color='#219AD8',
# 条形宽度
width=bar_width,
# 边框颜色
edgecolor='white'
)
# 将刻度设为 first_name
plt.xticks(tick_pos,yongshiyule178.com df['first_name'])
ax.set_ylabel("Percentage")
ax.set_xlabel("")
# 设置图形边界
plt.xlim([min(tick_www.michenggw.com pos)-bar_width, max(tick_pos)+bar_width])
plt.ylim(-10, 110)
# 旋转轴标签
plt.setp(plt.gca().get_xticklabels(www.dasheng178.com), rotation=45, horizontalalignment='right')
# 展示绘图
plt.show()
2018年终总结暨这些年的折腾
猜你喜欢
转载自blog.csdn.net/li123128/article/details/85345854
今日推荐
周排行