之前看了Mahout官方示例 20news 的调用实现;于是想根据示例的流程实现其他例子。网上看到了一个关于天气适不适合打羽毛球的例子。
训练数据:
Day Outlook Temperature Humidity Wind PlayTennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mild High Weak No
D9 Sunny Cool Normal Weak Yes
D10 Rain Mild Normal Weak Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mild High Strong No
检测数据:
sunny,hot,high,weak
结果:
Yes=》 0.007039
No=》 0.027418
于是使用Java代码调用Mahout的工具类实现分类。
基本思想:
1. 构造分类数据。
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
接下来贴下我的代码实现=》
1. 构造分类数据:
在hdfs主要创建一个文件夹路径 /zhoujainfeng/playtennis/input 并将分类文件夹 no 和 yes 的数据传到hdfs上面。
数据文件格式,如D1文件内容: Sunny Hot High Weak
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
这三步,代码我就一次全贴出来;主要是两个类 PlayTennis1 和 BayesCheckData = =》
package myTesting.bayes;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.ToolRunner;
import org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob;
import org.apache.mahout.text.SequenceFilesFromDirectory;
import org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles;
public class PlayTennis1 {
private static final String WORK_DIR = "hdfs://192.168.9.72:9000/zhoujianfeng/playtennis";
/*
* 测试代码
*/
public static void main(String[] args) {
//将训练数据转换成 vector数据
makeTrainVector();
//产生训练模型
makeModel(false);
//测试检测数据
BayesCheckData.printResult();
}
public static void makeCheckVector(){
//将测试数据转换成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"testinput";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失败!");
System.exit(1);
}
//将序列化文件转换成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件转换成向量失败!");
System.out.println(2);
}
}
public static void makeTrainVector(){
//将测试数据转换成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"input";
String output = WORK_DIR+Path.SEPARATOR+"tennis-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失败!");
System.exit(1);
}
//将序列化文件转换成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件转换成向量失败!");
System.out.println(2);
}
}
public static void makeModel(boolean completelyNB){
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-vectors"+Path.SEPARATOR+"tfidf-vectors";
String model = WORK_DIR+Path.SEPARATOR+"model";
String labelindex = WORK_DIR+Path.SEPARATOR+"labelindex";
Path in = new Path(input);
Path out = new Path(model);
Path label = new Path(labelindex);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
if(fs.exists(label)){
//boolean参数是,是否递归删除的意思
fs.delete(label, true);
}
TrainNaiveBayesJob tnbj = new TrainNaiveBayesJob();
String[] params =null;
if(completelyNB){
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow","-c"};
}else{
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow"};
}
ToolRunner.run(tnbj, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("生成训练模型失败!");
System.exit(3);
}
}
}
package myTesting.bayes;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.mahout.classifier.naivebayes.BayesUtils;
import org.apache.mahout.classifier.naivebayes.NaiveBayesModel;
import org.apache.mahout.classifier.naivebayes.StandardNaiveBayesClassifier;
import org.apache.mahout.common.Pair;
import org.apache.mahout.common.iterator.sequencefile.PathType;
import org.apache.mahout.common.iterator.sequencefile.SequenceFileDirIterable;
import org.apache.mahout.math.RandomAccessSparseVector;
import org.apache.mahout.math.Vector;
import org.apache.mahout.math.Vector.Element;
import org.apache.mahout.vectorizer.TFIDF;
import com.google.common.collect.ConcurrentHashMultiset;
import com.google.common.collect.Multiset;
public class BayesCheckData {
private static StandardNaiveBayesClassifier classifier;
private static Map<String, Integer> dictionary;
private static Map<Integer, Long> documentFrequency;
private static Map<Integer, String> labelIndex;
public void init(Configuration conf){
try {
String modelPath = "/zhoujianfeng/playtennis/model";
String dictionaryPath = "/zhoujianfeng/playtennis/tennis-vectors/dictionary.file-0";
String documentFrequencyPath = "/zhoujianfeng/playtennis/tennis-vectors/df-count";
String labelIndexPath = "/zhoujianfeng/playtennis/labelindex";
dictionary = readDictionnary(conf, new Path(dictionaryPath));
documentFrequency = readDocumentFrequency(conf, new Path(documentFrequencyPath));
labelIndex = BayesUtils.readLabelIndex(conf, new Path(labelIndexPath));
NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), conf);
classifier = new StandardNaiveBayesClassifier(model);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("检测数据构造成vectors初始化时报错。。。。");
System.exit(4);
}
}
/**
* 加载字典文件,Key: TermValue; Value:TermID
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<String, Integer> readDictionnary(Configuration conf, Path dictionnaryDir) {
Map<String, Integer> dictionnary = new HashMap<String, Integer>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
String name = path.getName();
return name.startsWith("dictionary.file");
}
};
for (Pair<Text, IntWritable> pair : new SequenceFileDirIterable<Text, IntWritable>(dictionnaryDir, PathType.LIST, filter, conf)) {
dictionnary.put(pair.getFirst().toString(), pair.getSecond().get());
}
return dictionnary;
}
/**
* 加载df-count目录下TermDoc频率文件,Key: TermID; Value:DocFreq
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<Integer, Long> readDocumentFrequency(Configuration conf, Path documentFrequencyDir) {
Map<Integer, Long> documentFrequency = new HashMap<Integer, Long>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
return path.getName().startsWith("part-r");
}
};
for (Pair<IntWritable, LongWritable> pair : new SequenceFileDirIterable<IntWritable, LongWritable>(documentFrequencyDir, PathType.LIST, filter, conf)) {
documentFrequency.put(pair.getFirst().get(), pair.getSecond().get());
}
return documentFrequency;
}
public static String getCheckResult(){
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String classify = "NaN";
BayesCheckData cdv = new BayesCheckData();
cdv.init(conf);
System.out.println("init done...............");
Vector vector = new RandomAccessSparseVector(10000);
TFIDF tfidf = new TFIDF();
//sunny,hot,high,weak
Multiset<String> words = ConcurrentHashMultiset.create();
words.add("sunny",1);
words.add("hot",1);
words.add("high",1);
words.add("weak",1);
int documentCount = documentFrequency.get(-1).intValue(); // key=-1时表示总文档数
for (Multiset.Entry<String> entry : words.entrySet()) {
String word = entry.getElement();
int count = entry.getCount();
Integer wordId = dictionary.get(word); // 需要从dictionary.file-0文件(tf-vector)下得到wordID,
if (StringUtils.isEmpty(wordId.toString())){
continue;
}
if (documentFrequency.get(wordId) == null){
continue;
}
Long freq = documentFrequency.get(wordId);
double tfIdfValue = tfidf.calculate(count, freq.intValue(), 1, documentCount);
vector.setQuick(wordId, tfIdfValue);
}
// 利用贝叶斯算法开始分类,并提取得分最好的分类label
Vector resultVector = classifier.classifyFull(vector);
double bestScore = -Double.MAX_VALUE;
int bestCategoryId = -1;
for(Element element: resultVector.all()) {
int categoryId = element.index();
double score = element.get();
System.out.println("categoryId:"+categoryId+" score:"+score);
if (score > bestScore) {
bestScore = score;
bestCategoryId = categoryId;
}
}
classify = labelIndex.get(bestCategoryId)+"(categoryId="+bestCategoryId+")";
return classify;
}
public static void printResult(){
System.out.println("检测所属类别是:"+getCheckResult());
}
}
1. 请介绍一下WebGIS的概念和作用,以及在实际应用中的优势和挑战。
WebGIS是一种基于Web技术的地理信息系统,通过将地理数据和功能以可视化的方式呈现在Web浏览器中,实现地理空间数据的共享和分析。它可以用于地图浏览、空间查询、地理分析等多种应用场景。WebGIS的优势包括易于访问、跨平台、实时更新、可定制性强等,但也面临着数据安全性、性能优化、用户体验等挑战。
2. 请谈谈您在WebGIS开发方面的经验和技能。
我在WebGIS开发方面有丰富的经验和技能。我熟悉常用的WebGIS开发框架和工具,如ArcGIS API for JavaScript、Leaflet、OpenLayers等。我能够使用HTML、CSS和JavaScript等前端技术进行地图展示和交互设计,并能够使用后端技术如Python、Java等进行地理数据处理和分析。我还具备数据库管理和地理空间数据建模的能力,能够设计和优化WebGIS系统的架构。
3. 请描述一下您在以往项目中使用WebGIS解决的具体问题和取得的成果。
在以往的项目中,我使用WebGIS解决了许多具体问题并取得了显著的成果。例如,在一次城市规划项目中,我开发了一个基于WebGIS的交通流量分析系统,帮助规划师们评估不同交通方案的效果。另外,在一次环境监测项目中,我使用WebGIS技术实现了实时的空气质量监测和预警系统,提供了准确的空气质量数据和可视化的分析结果,帮助政府和公众做出相应的决策。
4. 请谈谈您对WebGIS未来发展的看法和期望。
我认为WebGIS在未来会继续发展壮大。随着云计算、大数据和人工智能等技术的不断进步,WebGIS将能够处理更大规模的地理数据、提供更丰富的地理分析功能,并与其他领域的技术进行深度融合。我期望未来的WebGIS能够更加智能化、个性化,为用户提供更好的地理信息服务,助力各行各业的决策和发展。
这块您需要了解下stm32等单片机的基本编程和简单的硬件设计,最好能够了解模电和数电相关的知识更好,还有能够会做操作系统,简单的有ucos,freeRTOS等等。最好能够使用PCB画图软件以及keil4等软件。希望对您能够有用。
中国人民银行是国务院组成部门,是国家机关,是中央银行,不是商业银行,双休日是休息日,无特殊情况不上班,但有人值班。
部分地区周末照常上班,但只办理五万元以下的取款业务。
中国各大银行营业时间:
中国银行上班时间:上午8点半到下午5点,中午会关闭部分窗口;周六周日是从上午9点到下午4点,不提供对公业务办理。
中国邮政营业时间:全国统一 早上8:00 下午5:00. 4:30开始就不办理业务了 开始整理,有的地方会区分一下冬令时和夏令时。
招商银行上班时间:星期一至星期五:早上8点30分到下午5点正,周六日:早上9点正到下午4点30分
每个银行的时间都大致相同,中国各个银行上班时间与其他大型国有商业营业基本一样。
通常个人现金业务:早上9:00到下午5:00 ;对公业务:早上9:00-11:45,中午休息,下午2:00-5:00。
遇到国庆、五一、大年初一都是集体放三天的。不过为了应急每个地区的个人现金业务都有一个网点是开着的。
1.负责区域大客户/行业客户管理系统销售拓展工作,并完成销售流程;
2.维护关键客户关系,与客户决策者保持良好的沟通;
3.管理并带领团队完成完成年度销售任务。
你好,面试题类型有很多,以下是一些常见的类型:
1. 技术面试题:考察候选人技术能力和经验。
2. 行为面试题:考察候选人在过去的工作或生活中的行为表现,以预测其未来的表现。
3. 情境面试题:考察候选人在未知情境下的决策能力和解决问题的能力。
4. 案例面试题:考察候选人解决实际问题的能力,模拟真实工作场景。
5. 逻辑推理题:考察候选人的逻辑思维能力和分析能力。
6. 开放性面试题:考察候选人的个性、价值观以及沟通能力。
7. 挑战性面试题:考察候选人的应变能力和创造力,通常是一些非常具有挑战性的问题。
需要具体分析 因为cocoscreator是一款游戏引擎,面试时的问题会涉及到不同的方面,如开发经验、游戏设计、图形学等等,具体要求也会因公司或岗位而异,所以需要根据实际情况进行具体分析。 如果是针对开发经验的问题,可能会考察候选人是否熟悉cocoscreator常用API,是否能够独立开发小型游戏等等;如果是针对游戏设计的问题,则需要考察候选人对游戏玩法、关卡设计等等方面的理解和能力。因此,需要具体分析才能得出准确的回答。
以下是一些可能出现在MyCat面试中的问题:
1. 什么是MyCat?MyCat是一个开源的分布式数据库中间件,它可以将多个MySQL数据库组合成一个逻辑上的数据库集群,提供高可用性、高性能、易扩展等特性。
2. MyCat的优势是什么?MyCat具有以下优势:支持读写分离、支持分库分表、支持自动切换故障节点、支持SQL解析和路由、支持数据分片等。
3. MyCat的架构是怎样的?MyCat的架构包括三个层次:客户端层、中间件层和数据存储层。客户端层负责接收和处理客户端请求,中间件层负责SQL解析和路由,数据存储层负责实际的数据存储和查询。
4. MyCat支持哪些数据库?MyCat目前支持MySQL和MariaDB数据库。
5. MyCat如何实现读写分离?MyCat通过将读请求和写请求分别路由到不同的MySQL节点上实现读写分离。读请求可以路由到多个只读节点上,从而提高查询性能。
6. MyCat如何实现分库分表?MyCat通过对SQL进行解析和路由,将数据按照一定规则划分到不同的数据库或表中,从而实现分库分表。
7. MyCat如何保证数据一致性?MyCat通过在多个MySQL节点之间同步数据,保证数据的一致性。同时,MyCat还支持自动切换故障节点,从而保证系统的高可用性。
8. MyCat的部署方式有哪些?MyCat可以部署在单机上,也可以部署在多台服务器上实现分布式部署。
没想到这个题目过了这么多年了还有人关注和新回答,可能又是一年招聘入职季吧,今天偶然又看到了,我不妨自问自答一下吧。
首先,我已经辞职。走之前的职称职级是:中级经济师/主任科员。对于原单位,已经不是利益相关者,所以我尽量从公允的视角来回答这个问题。
当然,因为已经远离了原单位,我下面的回答主要是基于离职前的事实,部分事实可能已经发生变化,部分细节可能已经模糊或者存在记忆错误,部分内容来源于二手信息可能本身就存在误传可能,所以内容需要读者自行斟酌,作者不保证内容的正确性,如用做决策参考需要谨慎。
其次,回看题干中的几个疑问,有些已经很明确了:
Q1:社保问题
A2:总体而言,养老只剩下个人缴费部分可以转出,其他的大致都可以转出。
①养老保险:单位缴费部分转不出,个人部分可以带走,但是要自己找好接收机构。据说其他省分支机构有人事上直接帮你转好的,但我这里没有。此外前几年内网遵义论坛(好像现在已经关闭了)有人说存在地方上不愿意接收的情况(因为单位部分转不出,那么折算下来,仅以个人缴费部分转入,缴费基数就比较低了,以较低的缴费基数,换取地方上同样的养老待遇,地方上是不情愿的)。
至于单位缴费部分,目前无解,如果未来人行分支机构转公,是否有合并至地方的可能呢?也许吧,但是考虑到全国的养老金都告急,人行作为系统内统筹的单位,养老金是不是存在空账,这个内部统筹的旧体系还能支撑多久呢?这就很难说了。但是有一些现象值得关注:
1、国资划转社保全面推开,见新闻链接(以“全面推开”打破国资划转社保僵局),这意味着统筹社保未来的造血功能更强,迂回余地更大。如果是系统内养老统筹的话,有什么可以划转到系统内社保呢?
2、(这一条是离职前在遵义论坛上看到的,因为不在人事上工作,对相关政策不了解,无法核实,不一定准确)大致意思是说,按照入行时间,养老大致可以分为老人(2013年及以前)、中人(2014年)、新人(2015及以后)三类,三类人养老缴费方式和退休后的养老待遇不一样,老人未来退休后的保障是最好的。若此条不假,意味着已经在对系统内的养老金进行开源节流,至于为什么要这样,斗胆妄加猜测一下可能是钱不够了?
所以,目前在大环境和小环境均不乐观的情况下,养老的单位缴费部分就别惦记了,就当他是一笔被你遗忘在裤兜里的钱吧,也许你会在未来的某一天重新找到它,并给你一个大大的惊喜也不一定。
②医保:我这里比较奇怪,医保只能转关系,不能转账户里面的钱,注意这里是地方上的政策,与人行没有关系。所以钱只能留着在原单位所在城市自己买药了
③公积金:在地方缴纳,遵循地方政策即可,一般可以转出或取出(取出一般要封存至少6个月)。
Q2:职称问题
A2:首先要明确的是,由于没有人社部门发的小本本,所以出了人行门,(理论上)别的单位可以不承认你在人行的职称,如果靠专业技术立足吃饭且想跳槽的话,这是一个较大的沉默成本。
其次,在系统内部,职称评聘的难度如何?同样,基于个人的了解,首先说规则,然后摆现象。
规则而言,和事业单位类似,根据单位级别划定各类职称的比例,如果没记错的话,这个比例目前(指我离职前,下同)是有文件规定的(最新版好像是2015年发的),如果所在单位对应职称的目前比例还没有达到限制值,那符合职称条件的话,一般都可以评聘,否则,有可能只评不聘(聘了才能享受对应的职称工资),或者根本评不上,需要等位子空出来。
然后,说几个大家可以关注的事实吧:
1、正高级职称:目前高级经济师是副高级,并且正在试点正高级经济师,新闻链接(北京市西城区人民政府),系统内部要改也是迟早的事,随着梯队极次的增加,直接利好已经上岸的万年老副高,对年轻人应该也算间接利好吧。
2、中级堰塞湖:为什么判断可能将来会产生堰塞湖,主要是两个事实。①目前省会分行一级进人最低学历一般是硕士②硕士初定中级职称不受职数限制。那么逐渐积压的中级以后上副高的难度势必加大。同理,在分行省会中支一级,由于主任科员职数不受限制,那么未来也可能形成堰塞湖。
3、高师比例(凭记忆,可能有误):县支行最低,只有2%,分行超过20%,好像是22%左右,省会中支和分行营管部大约是18%,地市应该是在10%左右。如果是省会中支的小伙伴,你们可能已经发现了,你们和分行一样,同属总领一省的钦差大臣,干着同样的活,而且你们由于没有营管部,还要承担省会城市单独的一块工作,工作量更大,但是在高级职称评聘比例上却是吃亏的。
至于难度,与所在单位级别,所在单位和部门的年龄结构,职称结构,空缺职数有关,需要结合自身情况要分析,如果你一定要做总体上的比较,这里有一个地方上的事业单位各级职称的比例,在链接的文末。如果你有心的话,可以和上述人行的比例比较一下,相信你会有自己的判断。(中共福建省委办公厅省人民政府办公厅关于印发《福建省事业单位岗位设置管理实施意见(试行)》的通知)
Q3:发展和出路
A3:这里更是因人而异,也无法给出结论,所以每一点都不长篇大论,就简单列一些自己的所见所闻和看法吧,不一定正确,仅供参考。
1、关于加班:任何行业,非自主加班比自主加班要累的多。长期非自主加班,又缺少正向反馈的话,往往会感觉心力交瘁,看不到希望。
2、关于试错成本:18岁高中毕业+4年本科+3年硕士=25岁,25岁+5年最低服务期=30岁,离35岁招考年龄大限还有5年,这还是按一切顺利毫不耽误计算的,所以如果有想法,要抓紧。
3、关于硕士的优势:个人观察,硕士的优势在急剧下降。以前是硕士进省行,一本本科进市行,其他本科进县行,现在了解到的是,大量甚至211硕士也涌向了地市中支。这与最近国家机构改革,很多招考大户停招有关,和宏观经济形势和产业结构有关,和80-90后的年龄分布有关,也与若干年前我们父母那一辈的婴儿潮有关。时也命也,有些事情,注定是要我们这一代人承担。“一个人的命运啊,既要看个人奋斗,也要考虑历史的进程”,此话诚不我欺。
4、关于提升自己/继续深造/学习一门技能/等等的难度:结论是难,非常难,需要付出比在学校时更加艰苦的努力,当然这并不是人行的问题,而是绝大多数行业都是如此。可以想象一下,财经类大学毕业,如果你去商行当桂圆,请问你还有时间运用自身专业知识,去对宏观经济金融做研判分析吗?那么你的专业知识被废掉就只是时间问题了,同样被断送的也有你未来的其他发展可能性。
我曾经在读大学期间在家里发现了一本泛黄的《高等数学》教材,上面是我妈妈的签章,书的前几页上认真的做了笔记,还用红笔画了很多杠杠,但是后面却是跟新书一样,我曾问她为什么不继续学下去了,她只是无奈的笑了笑。我当时刚学完数学分析,觉得数学虽然有难度,但是认真学还是能学个七七八八的,我当时的想法是,我以后显然不会是这样的,学习新知识的能力肯定比父母那一辈强多了。直至今日,回望我这几年读博、换工作、继续在新岗位上忙碌的过程,我才明白当时我妈妈为什么是无奈的笑。成年人的生活没有一天是容易的,大量的事情如潮水般涌来去耗散你的精力,还面临着身体机能的日益下降。所以我的能力也并没有比父母辈强多少,网上有云:“一个人逐渐成熟,首先是承认自己父母是普通人,然后是承认自己是普通人,最后是承认自己的孩子是普通人”,看来此话不假,而普通人做成任何事情都是困难的,是需要付出极为艰苦的努力的。
5、关于职称职务提升:就目前而言,省一级达到硕士标配(副主任科员+中级职称)还是没有问题的,一般2-4年即可以实现。但是由于前面提到的主任科员和中级职称堰塞湖的问题,所以副科提主任科员和初次认定中级职称的难度在增大。另外一个不确定性是,机构改革之后,公务员和事业单位的原主任科员对应2级主任科员,原副主任科员对应4级主任科员,中间隔了一个3级主任科员。目前人行分支机构还没有施行这项改革,如果实施,推测的话,那么硕士将只能从4主(原副主任科员)升3主(低于原来可以直接升到的主任科员,也就是2主),这对尚未拿到主任科员的硕士是极为不利的。
6、关于系统内部的一些机会:由于退休潮(从今年招人较多)和县支行年龄断层存在,所以已经工作了若干年的pbcer,在这几年内如果能抓住机会往上走一级,还是很不错的。如果入行时间较晚,或者局部环境不优(比如处室都是年轻人,等待提升职称或者职级,或者单位的职数已满),这几年内难以继续往上走的,那就只能继续排队了,不过谨防后来人坐火箭插队哟(* ̄︶ ̄),不然你就需要一颗坚强的心脏了。
写在最后:
1、如果专业技术精湛,任何时候都不要害怕竞争,去专业的地方做专业的事情。打个比方,一个医生不会说因为害怕竞争而不去大医院,情愿去单位医务室待着;一个专业技术工作者也不会为了仅仅是为了体制内上岸,选择一个基层混岗混编的公务员单位做二等公民,而应该去对口的事业单位。如果确实对金融研究有兴趣和能力,个人觉得人行省一级对你而言级别太低,应该去人总行、部委、高校、研究所。如果对金融实务感兴趣,那更应该去机构,去市场中搏杀。
2、做决定要趁早,转行也要趁早。现在想起来,我仍然感慨多年以前的一个冷雨夜,在实习县支行宿舍中,提交博士报名申请书的时候。
3、坚持学习,坚持自己认定的东西。人行不缺学习培训的机会,有些培训讲的确实非常不错。包括内网也有很多。但是一般而言对学习培训走过场的也多,有些基层领导也直接说培训的东西工作根本用不上,但是恰恰是这些在工作中用不上的东西,对提升自己是最有用的。(打个比方,对商业银行基层管理者而言,他肯定觉得具体的业务操作规程比管理学原理,风险管理课程有用的多,但是如果你真听了他的话只去学操作规程,而放弃了解背后的原理,那么实际上也丧失了提升自己,从更高层面分析问题的能力;但是反过来说,如果你既要应付领导要求,还要自己去学自己要学的东西,你晚上加班回到家不能躺下休息还要继续啃书,你扪心自问能坚持下来吗?这也是为什么工作之后要学习是如此之难)
4、大胆假设,小心求证,谋定而后动。网上抱怨的帖子还是少看,知乎上那些手撕领导,干翻同事的职场爽文也尽量少看点,毕竟对实现自己的目标没有任何用处,还是关了浏览器去学习吧。
最后的最后,我在知乎潜水多年,这算是最长的一个帖子了,这个帖子我断断续续写了很长时间,基本上每写一段我都会陷入对上一段工作的思考中,写下这些,也是对过去一段工作的总结和告别。
以后大概也不会再回答和人行相关的问题了,毕竟,人不能总活在回忆里面,人还是要向前看。在此祝愿所有的pbcer和前pbcer都能得到自己想要的东西,永远都能开心快乐吧。
谢邀。我先跟你说一个实际的工作例子,再说怎么答题,姑且称为为一碗水的故事。
某县xx局的张副局帮扶的贫困户位于100公里以外的偏远小乡村,该贫困户一户7人,年迈的爷爷奶奶,户主五十多岁,三个正在读书的孩子。张副局每次驾车到该村村委后,再乘坐摩托车到底该贫困户家中,送点慰问品、聊聊家常、看看政策落实,填写帮扶手册。但每次张副局都会自带一瓶矿泉水入户,每当老人家热情的招呼:领导远道而来,喝碗水吧。张副局总是摆摆手说道:老人家,我不渴或者我这有水,然后过一会拿起矿泉水就喝。看着那只发黄发黑的水壶,满是泥垢的双手,油腻的碗,作为城里长大的张副局,怎么可能会喝。2019年该户各项指标达标,但在脱贫的事情上老人家一直不愿配合。年底的一次入户时,张副局身体不适,又恰好车上的矿泉水用完,刚到贫困户家里时,老人家一如既往地招呼,张副局推辞后,饥渴难耐,还是端起碗来,喝了一口,山泉水口感还是可以的。当天张副局陆续喝了三碗水,老人家最后说道:既然领导不嫌弃咱们,那我也听领导的,你说怎么办就怎么办吧。瞬间,张副局恍然大悟,原来,不喝他的一碗水,他就觉得你是嫌弃他们脏,嫌弃他这个与土打交道老实人。人人都渴望被平等对待,就像费洛伊德一样,平等才能创造更多的可能。当然,他们的环境也的确差一些。张副局往后每次入户除了拉家常外就是帮他们一起打扫卫生,教会他们各类常见的健康知识。
再回到题目上来,首先作为一名帮扶干部,要与贫困户建立起平等和谐的帮扶结对关系,入户帮扶过程中,贫困户拿了椅子让我坐,证明贫困户还是比较热情、比较配合工作的。对于椅子脏,我首先会接过椅子,并向贫困户表示感谢。顺其自然的用手拍拍椅子,然后把椅子靠近贫困户的地方坐下来,一起拉家常,商量扶贫工作。
其次是贫困户的椅子脏,说明了他的卫生观念不够强。这就需要我们加强向他宣传卫生健康知识,抽时间共同打扫卫生。
再次就是贫困户他家中可能存在家具比较紧缺情况,我们就要积极发挥后盾单位作用,帮他们增加收入,添置家具。
最后就是我们在工作中,要妥善处理好每个工作细节,一点一滴做起,扎实地做好脱贫攻坚工作,确保奔小康路上一个都不少!