"Los buenos desarrolladores no son suficientes para crear una empresa": Jeff Proseiz sobre negocios y aprendizaje automático



Para la mayoría de los afiliados, Jeffrey Richter es un gurú y el autor más importante. Pero para Jeff Proseiz, él es principalmente un amigo y ex colega: juntos fundaron la compañía Wintellect (entre sus clientes: Microsoft). Ahora Jeff y Jeffrey han desviado sus caminos profesionales, pero ambos aún dedican sus vidas a .NET.

El año pasado, Jeffrey Richter habló en nuestra conferencia DotNext, luego lo entrevistamos para Habr y, entre otras cosas, le preguntamos cómo es para un profesional de TI entrar en el negocio. Y ahora Jeff Prosys también viene a DotNext, por lo que se volvió interesante preguntar sobre esto y sobre él. ¿Cómo surgió esta compañía "estrella"? ¿Qué puede recomendar Jeff a los desarrolladores que consideran su propio negocio? ¿Contra qué error puede tener precaución el Wintellect?

Y debido a que DotNext hará una presentación en ML.NET en DotNext, también hicieron algunas preguntas sobre el aprendizaje automático.

Biografia y libros


- Tienes una larga carrera - cuéntanos cómo comenzó.

- Recibí un diploma en ingeniería mecánica en 1982 en los Estados Unidos. Era una época en que acababan de aparecer las primeras computadoras personales. Me interesé por ellos, ahorré dinero y compré uno de los primeros modelos. Resultó que realmente me gusta la programación, y también escribo sobre programación, sobre computadoras y capacito a los usuarios de computadoras, especialmente a los desarrolladores.

Por lo tanto, en 1990, cambié todo dramáticamente, dejando el trabajo de un ingeniero. Para entonces, ya había escrito artículos para revistas, pero luego escribí un libro. Desde entonces, ya no trabajaba en mi antigua especialidad, comencé a hablar en conferencias, escribir libros y capacitar a desarrolladores con las últimas tecnologías en nuestra industria. Creo que ayudar a otros programadores y sus empresas a escribir un buen software es una cuestión de mi vida.

- ¿De qué trataba este primer libro?

- Se dedicó a DOS 5. El lanzamiento de DOS 5 fue un evento importante, al igual que el lanzamiento posterior de Windows 95. Mi primer libro tenía aproximadamente mil páginas. Luego, mi agente dijo que, por lo general, las personas comienzan con libros cortos y yo di a luz a un elefante. Luego escribí algunos libros más sobre DOS, y luego cambié a Windows y algunos otros temas.

En 2001, se publicó mi último libro, dedicado a Microsoft .NET: fue el primer libro sobre .NET publicado en Microsoft Press. Desde entonces, ya no escribo libros, en parte porque la gente ahora absorbe información de una manera diferente. Anteriormente, la capacitación se realizaba principalmente en libros, ahora existe Internet y mucho más. Mi método de enseñanza no ha cambiado, pero en lugar de libros, ahora uso conferencias, cursos en línea y más.

- ¿Ha cambiado significativamente el proceso de escribir libros desde la década de 1990, o sigue siendo el mismo para los autores?

- Sí, cambiado. En la década de 1990, el autor primero tuvo que escribir el texto en un editor de texto, luego imprimirlo en dos intervalos y enviarlo por FedEx al editor, y después de varias semanas de edición, el texto volvió en rojo. Ahora todo este proceso está sucediendo en forma electrónica.

Pero lo más importante, la gente ahora está aprendiendo de manera diferente. Casi se garantizaba la demanda de un libro bien escrito sobre un tema importante en la década de 1990, se podría esperar que la gente aprendiera de él. Esto es en parte cierto hoy en día, pero la demanda de libros se ha reducido mucho, porque hay muchas otras formas de aprender, y los libros se han vuelto mucho menos importantes que hace 20 años.

- En Internet a menudo puede encontrar una mención de su libro "Programación de Windows con MFC". ¿Se ha convertido en el más popular? ¿Cómo apareció ella?

- Sí, ella fue uno de mis dos libros más populares, junto con un libro sobre DOS 5. Tuvo ventas muy altas y durante mucho tiempo recibí un buen ingreso de ella. La mayoría de los que me conocen como autor están familiarizados con este libro en particular.



En ese momento, la programación bajo Windows comenzó a ser muy popular, y muchos la estudiaron en el clásico libro de Charles Petzold "Programming Windows", que se centró en el lenguaje C. Pero a mediados de la década de 1990, la mayoría de los desarrolladores profesionales de Windows habían escrito no en C, sino en C ++, y utilizó MFC, una biblioteca de clase C ++ para Windows hecha por Microsoft.

Me sorprendió saber que Microsoft Press no publicó libros para MFC, similar al libro de Petzold. En ese momento, conocía a Petzold durante mucho tiempo, y le pregunté si iba a escribir un libro sobre programación en Windows en C ++. Él respondió que no, porque con C es más conveniente enseñar a las personas las cosas más básicas. Después de eso, firmé un acuerdo con Microsoft Press en un libro sobre MFC, y como resultado, se convirtió en una herramienta bastante importante para los programadores que querían escribir Windows en C ++ en lugar de C. Todavía tengo copias de él en el estante, y yo Todavía me encuentro con personas que alguna vez lo leyeron y me recuerdan. Siempre es bueno saber que tu libro ha ayudado a la carrera de alguien.

Wintellect, Negocios, Jeffrey Richter


- Ya eres el segundo de los cofundadores de Wintellect, llegando a DotNext. Así que quiero saber: ¿cómo conociste a Jeffrey Richter y cómo apareció la empresa?

- Jeffrey y yo hemos sido amigos durante mucho tiempo y aún nos comunicamos mucho. Ahora trabaja en Microsoft, y realmente le gusta allí. Nos conocimos a mediados de la década de 1990; si no me equivoco, esto sucedió en Redmond, donde se nos mostró Windows 95. Microsoft celebró esta reunión porque querían recibir comentarios. En ese momento, ya leí uno de los libros de Jeffrey sobre programación para Win32, y en esta reunión me acerqué a él y le dije que realmente me gusta lo que escribe.

Después de eso rápidamente nos hicimos amigos. En la década de 1990, realizamos capacitaciones casi todas las semanas para varias compañías como Intel y Microsoft, principalmente en los EE. UU. El tercer fundador de Wintellect, John Robbins, hizo lo mismo, también éramos amigos de él. A finales de 1999, decidimos crear Wintellect, porque nos gustó lo que hicimos y queríamos hacerlo juntos.


Jeffrey Richter en el DotNext del año pasado

Si mi memoria no me falla, la compañía se registró en abril de 2000. Al principio, principalmente realizamos capacitaciones. En 2005, Todd Fine, quien ahora es nuestro CEO, vino a nuestra compañía. Entonces su tarea era crear un departamento de consultoría. Yo, Jeffrey y John queríamos consultar, pero nuestra experiencia en esta área era limitada, por lo que necesitábamos la ayuda de Todd.

Todavía realizamos capacitaciones, pero la mayoría de nuestros ingresos hoy provienen de la participación en consultoría en el desarrollo. Tenemos muchos desarrolladores talentosos, tanto en Atlanta como en todo el país. Ayudamos a otras empresas a escribir software, a veces solo participamos en la creación de arquitectura, a veces ayudamos tanto con la arquitectura como con la implementación, en algunos casos se nos pide que hagamos algún tipo de herramienta en su conjunto. Tanto los empleados habituales como los contratistas, a quienes conocemos desde hace muchos años, trabajan con nosotros. Nuestra actividad como empresa es que estamos buscando a nuestros clientes las personas más inteligentes y talentosas para escribir el software que necesitan, y disfruto mucho mi trabajo.

- Cuando las personas de TI crean una empresa, entienden todo con el lado técnico de las cosas, pero el lado comercial tiene sus propios requisitos: ¿qué piensas sobre esto?

- Tienes razón en que cuando los programadores crean una nueva empresa, no basta con tener buenos arquitectos y desarrolladores. También es necesario que haya personas con visión para los negocios. Desde los primeros días de la existencia de Wintellect, contratamos a un director especializado específicamente en negocios, que no tenía experiencia técnica. Todd, nuestro actual CEO, conoce tanto el aspecto técnico como el negocio, tiene un MBA.

Además, el presidente nos visitó recientemente con experiencia en la administración de una empresa de TI por valor de $ 100 millones, se graduó de la Escuela de Negocios que lleva el nombre Buta Es decir, nos damos cuenta de que las habilidades técnicas no son suficientes, también necesitamos personas con habilidades comerciales. Y la mayoría de las veces, las personas que conocen bien la programación, como John, Jeffrey y yo, no son buenos para gestionar el crecimiento de la empresa, las ventas, el marketing y similares. Por lo tanto, cuando los desarrolladores establecen su propia empresa, es importante determinar sus fortalezas y debilidades, y si no tiene una persona con una amplia experiencia comercial, debe encontrar a esa persona e invitarla a su empresa. Esto le permite alcanzar la mayor posibilidad de éxito.

- ¿Cómo se asignaron Jeff y John los roles entre ustedes cuando iniciaron la empresa?

- Tanto John, como Jeff, y yo ya teníamos clientes a quienes consultamos y para quienes realizamos capacitaciones. Por lo tanto, al principio trabajamos principalmente con nuestros antiguos clientes. Esto determinó la distribución de roles en esa etapa. John Robbins es uno de los principales expertos en depuración del mundo, por lo que hizo todo lo relacionado con la capacitación de depuración o la resolución de problemas difíciles e inesperados con el software.

Jeffrey generalmente trabajaba con cosas relacionadas con Win32 o .NET. También escribí en .NET, y era bastante bueno en ASP.NET, así que ayudé a Geoffrey con .NET y me ocupé de todo lo relacionado con ASP.NET. Si había una necesidad de habilidades no relacionadas con estas áreas, contratamos a otras personas.

- Esta entrevista será leída principalmente por los desarrolladores, pero quizás algunos de ellos estén pensando en crear su propia empresa. ¿Qué les podrías aconsejar?

- En primer lugar, lo ya mencionado: no importa qué genios estés en la programación, sin habilidades de ventas y marketing no llegarás lejos. En las primeras etapas, es importante no solo contratar buenos programadores, sino también trabajar conscientemente en los componentes no técnicos de su organización: proporcionar un liderazgo de alta calidad, un departamento de ventas y marketing confiable. Será mejor para usted si se ocupa de esto, porque entonces no tendrá escasez de trabajo y no necesitará buscarlo constantemente.

Además, le aconsejaría que elija a sus socios comerciales con mucho cuidado. Tuve mucha suerte: yo, John y Jeffrey ya éramos amigos cuando comenzamos nuestra empresa. Todavía somos amigos, y los respeto mucho. Pero conozco personas que después de un tiempo de trabajar juntos se dieron cuenta de que no valía la pena hacer negocios con sus socios. Es necesario que se lleven bien entre sí y que tengan una visión común de cómo debe desarrollarse la empresa.

Con las empresas como con las familias: a menudo se desmoronan no por falta de habilidades técnicas, sino porque los socios no tienen habilidades comerciales, o son poco compatibles entre sí y se pelean constantemente. Estas fricciones dificultan en gran medida el éxito de la empresa, se hace más difícil lograr un objetivo común.

Mi tercer consejo es el siguiente: debe tener una visión no solo de lo que la empresa debe lograr, sino también en términos de la cultura de la empresa. Es mejor tener una idea de esto desde el principio que dejarlo ir solo. Obviamente, a medida que su negocio crezca, la situación cambiará, es imposible predecir con precisión el futuro, y debe estar preparado para estos cambios. Pero incluso con esto en mente, es importante desde el principio tener una idea de cómo debería ser su negocio.

- Al principio, todos siempre cometen errores: ¿puede hablar sobre algún tipo de error en la administración de Wintellect para que ayude a otra persona a evitarlo en su negocio?

Yo puedo. La lección que aprenderé de mi historia será esta: es muy importante diversificar su negocio y sus clientes, y no poner todos sus huevos en una sola canasta. No hicimos esto, y esto resultó ser dificultades bastante significativas para Wintellect.

En 2005, creamos un departamento de consultoría, pero al mismo tiempo continuamos realizando capacitaciones. Con los años, hemos recibido muchos millones de dólares al año de parte de Microsoft para capacitar a sus desarrolladores. John, Jeffrey y yo viajamos constantemente a los departamentos de Microsoft en todo el mundo y realizamos capacitaciones allí: en Redmond, Hyderabad, Dublín, Beijing, Shanghái y muchos más.

Y todo estaría bien, pero en 2014, Microsoft cambió sus políticas de manera bastante significativa y decidió no seguir impartiendo capacitación centralizada a sus empleados. Una buena tarde de septiembre de 2014, recibimos un correo electrónico de Microsoft en el que nos agradecían nuestro trabajo anterior e informamos que no habría más contratos de capacitación. El departamento de consultoría no se refirió a esto, pero el departamento de capacitación dejó de ser rentable en un día por uno rentable, porque había muchas personas muy inteligentes con un excelente conocimiento de su campo, y dos tercios de los ingresos de este departamento provenían de Microsoft.

De hecho, sabíamos que deberíamos diversificar nuestro negocio, y entendimos que la pérdida de un contrato con Microsoft podría dañarnos seriamente. Pero la diversificación fue difícil, porque es difícil rechazar ingresos si se trata de usted. En general, nuestro departamento de capacitación tardó varios años en volver a ser rentable. La moraleja aquí es: evitar la dependencia de un cliente, porque te vuelves muy vulnerable si este cliente de repente quiere dejarte.

- En las grandes empresas, a menudo son escépticos acerca de invitar a una persona de una empresa de terceros a enseñar su código. ¿Cómo Wintellect manejó esto?

- Tiene razón en que para cualquier corporación que contrate maestros de terceros, siempre surge la pregunta de cuán calificados son estos maestros.

Pero nos ayudó que no nos enseñaron los principiantes que escribieron .NET durante dos años, sino las personas que participaron en la creación del marco en sí y que conocen a quienes lo están desarrollando ahora. Por ejemplo, cuando necesitábamos un curso .NET, enviamos a Geoffrey Richter, quien participó en la creación de .NET y redactó el CLR, para que pueda dar ese material y responder preguntas que probablemente nadie más en este planeta pueda responder. para responder Tenemos contactos en Microsoft, conocemos bien los sistemas que asesoramos y, en mi opinión, esto es lo que más nos distingue de otras compañías.

Y ya teníamos mucha experiencia docente: yo, John Robbins y Jeffery Richter formamos programadores en otras corporaciones durante muchos años, Wintellect simplemente nos permitió unir fuerzas y ofrecer un conjunto más completo de cursos.

- Desafortunadamente, no todas las empresas de capacitación / consultoría tienen su propio Jeffrey Richter. ¿Pueden dar consejos a quienes no tienen superestrellas?

- No intentes engañar al cliente. Por supuesto, siempre trate de encontrar a alguien que realmente conozca bien el área necesaria. Pero si no lo tiene, no pretenda que lo es.

Siempre existe la tentación de seguir el camino de menor resistencia. Cuando un cliente lo llama y le pide que realice un curso, por ejemplo, en Java, incluso si no tiene un especialista en Java, alguien le dirá: no hay ingresos superfluos, tomemos un pedido. Debemos luchar contra esta tentación. No envíe a enseñar a C # a la persona que él mismo comenzó a enseñarle hace dos semanas. Los clientes no son tontos, se darán cuenta rápidamente de que el maestro sabe un poco más que sus alumnos. La calidad tiene que construirse con los años, y puede perderla en unas pocas semanas.

Y busque personas que no solo conozcan bien su tema, sino que también sepan trabajar con el público. Hay muchas personas que conocen bien el aspecto técnico del asunto, pero para transferir este conocimiento a un grupo de 10, 20 o 30 personas, lo hacen mal. Este es un talento que no siempre acompaña las habilidades técnicas.

Por lo tanto, a menudo contratamos personas que han estado hablando en conferencias como DotNext durante años; si no fueran buenos oradores, no serían invitados nuevamente con informes.

- Cuando realiza capacitaciones para Microsoft, ¿esto es diferente de la capacitación en otras compañías? Por ejemplo, si durante el proceso de capacitación surge un informe de preguntas / deseos / errores en .NET, ¿sucede que se envía de inmediato a los empleados apropiados?

- Hay diferencias Y realmente tuvimos casos en los que, después de discutir algún problema en la lección, enviamos solicitudes a los desarrolladores. Algunas veces esto sucedió porque una persona del equipo apropiado estuvo presente en la lección. O el instructor podría ofrecer contactar a los creadores de la tecnología. En este sentido, la situación en Microsoft es verdaderamente única.

Hay otra diferencia que, sospecho, se aplica a Facebook o Google en la misma medida: Microsoft tiene muchas personas muy inteligentes, contratan a los mejores programadores no solo de los EE. UU., Sino también de todo el mundo. Por lo tanto, la gente viene a clases allí, para quienes el software no es solo ganancias, sino el negocio de sus vidas. Me complace enseñar en un público así, porque esas personas hacen buenas preguntas, están mucho mejor motivados y, en última instancia, la calidad de la capacitación es mayor.

Creo que todos los que se ganan la vida en la capacitación tuvieron ocasiones en las que terminaron en una audiencia en la que la mayoría de los presentes no se sentaron por su propia voluntad, sino porque el gerente se lo dijo. Un buen instructor puede trabajar con ese público, pero cuando las personas son inteligentes y están motivadas, el resultado es aún mejor. Y este es exactamente el caso en Microsoft.

Durante los años de trabajo en Microsoft, impartimos muchas clases en Redmond, donde se encuentra la oficina principal de la compañía, y generalmente había 85 personas en las clases, de lo contrario no podríamos satisfacer la demanda. Incluso teniendo en cuenta grupos tan grandes, las clases todavía se alinearon para clases, a veces debido a esto hubo malentendidos, ¡una vez que las personas incluso se pelearon! Esto sucedió en un momento en que Silverlight se usaba ampliamente, y luego enseñé sobre él, cuál de todos mis cursos fueron los más populares en Microsoft, fue muy difícil seguirlos. Una mañana, alrededor de 30 o 40 personas se reunieron alrededor de la audiencia, y dos de ellas se pelearon entre sí, al final llegó a los puños y tuvo que llamar a los guardias. Por supuesto, esto es malo, pero al mismo tiempo, como instructor, me complace darme cuenta de que la gente está lista para pelear para llegar a clase.

- Ahora la compañía tiene cursos de video WintellectNOW - ¿puede contarnos sobre ellos? Ahora hay muchos cursos en línea, ¿los tuyos son algo diferentes?

- Creamos WintellectNOW en 2012. La razón de esto fue la solicitud de Microsoft: dijeron que no querían forzarnos demasiado con vuelos constantes para realizar cursos en vivo, y que también necesitaban una solución más escalable. Por lo tanto, WintellectNOW originalmente estaba destinado exclusivamente para Microsoft, pero más tarde estuvo disponible para el público en general.

, . — , , Pluralsight. Pluralsight — , . , .

, 50 .NET Angular. , , . Node.js — Angular, . , 40 Angular, , . .


— ML.NET, ( .NET). , ML , ?

— , . , — , 30 . , . . , zip-, . , , .

— , , . , , . , .

, , , . , , , . . . , , , .

. , . , , , , .

— , — ?

— , . ImageNet, , , , .

-, : - , «». , , . , , , , . , .

, - , , . , , , , . . , , . , , , .

— TechTrain (, - ). , : , « ». , ?

— , «». , , , — , , . .

, , — . , , .

— , Microsoft Google, - . « - , ». ?

— , , . . data science, . , . , . , , , , .

Otro ejemplo. Wintellect . , 20 , , , . . , , , , . , — .

, . , , ; , .

— . , , « , ». , , . ?

— . , , . , , Win32, -. .

, , . , , , — , , , , . computer science, , , , .

: . , — , , , . , , .

, , , , . . , , , , . . , , , . , , 10 , , , .

DotNext , , 50 . , . — , , , , , , , , , .

, ML.NET, , Python. C#, Python , (Keras, Scipy) — Python. Python - . , Microsoft, ML.NET, , , C# Python. C#, , , , .

DotNext «Machine learning for C# developers: Introducing ML.NET». : «, .NET , ». ML , — .

Source: https://habr.com/ru/post/471566/


All Articles